繁体   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