有条件地分配对象值 JavaScript

Assign object values conditionally JavaScript

我从 api 接收到一个数据对象,其中某些属性的值可能为 null。我想创建一个 returns 对象的函数,但对于具有空值的属性,有一个“-”。我试过:

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

但这只是 returns 一个值数组。我读到最好不要使用 for in 循环,所以我想尽可能避免使用它。任何帮助表示赞赏!

映射对象的条目,将nulls变成-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);

如果你不想改变原件,你可以克隆它。