[英]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.