有条件地分配对象值 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 循环,所以我想尽可能避免使用它。任何帮助表示赞赏!
映射对象的条目,将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);
如果你不想改变原件,你可以克隆它。
我从 api 接收到一个数据对象,其中某些属性的值可能为 null。我想创建一个 returns 对象的函数,但对于具有空值的属性,有一个“-”。我试过:
const hyphenOrContent = movie => {
return Object.values(movie).map(val => {
return val === null ? "-" : val
});
}
但这只是 returns 一个值数组。我读到最好不要使用 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);
如果你不想改变原件,你可以克隆它。