簡體   English   中英

有條件地分配對象值 JavaScript

[英]Assign object values conditionally JavaScript

我從 api 接收數據對象,其中某些屬性的值可能為 null。 我想創建一個返回對象的函數,但對於具有空值的屬性,則使用“-”代替。 我試過了:

const hyphenOrContent = movie => {
    return Object.values(movie).map(val => {
        return val === null ? "-" : val
    });
}

但這僅返回一組值。 我讀過最好不要使用 for in 循環,所以我想盡可能避免使用循環。 任何幫助表示贊賞!

映射對象的條目,將null s 轉換為- s,然后使用Object.fromEntries將條目數組轉換為對象:

const hyphenOrContent = movie => Object.fromEntries(
    Object.entries(movie).map(
        ([key, val]) => ([key, val === null ? "-" : val])
    )
);

只需遍歷對象並更改屬性。

 const hyphenOrContent = movie => { Object.entries(movie).forEach(([key, val]) => { if (val === null) movie[key] = '-'; }); }; var a = { foo: null, bar: '123', baz: null } hyphenOrContent(a); console.log(a);

如果您不想更改原件,可以克隆它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM