繁体   English   中英

如何使用 ES 6 语法检查 object 中的 null 属性?

[英]How can i check for null property in object inline with ES 6 syntax?

我有一个 object 有五个属性,我只需要取其中三个。对于其中一个属性,我需要检查它是否是 null 值,那么它应该是“未知”。 代码将如下所示

let obj = {
    name:"john",
    lastName:"doe",
    age:24,
    city:null

}

function getSomeProperties(obj) {
    let newObj = {
        name: obj.name,
        age:obj.age,
        city:obj.city == null ? 'unknown' : obj.city
    }
    console.log(newObj);
}

getSomeProperties(obj);

如果我尝试仅内联三个属性,那么这有效


function getSomeProperties(obj) {
    const newObj = (({name, age, city}) => ({name, age, city }))(obj);
    console.log(newObj);
}

但问题是当我尝试内联检查城市是否像第一种情况一样是 null 时,我得到错误。

function getSomeProperties(obj) {
    const newObj = (({name, age, city}) => ({name, age, city == null ? 'unknown' : city }))(obj);
    console.log(newObj);
}

这个东西可以内联吗?

您需要像这样检查它:

({name, age, city: city == null ? 'unknown' : city })

或者您使用无效合并运算符:

({name, age, city: city ?? 'unknown' })

你可以在上面做同样的事情:

city: obj.city ?? 'unknown'

它检查左侧是null还是undefined 如果是这种情况,它会返回右侧的值。

记住0false不被视为无效值。

在 JavaScript 中,空值是nullundefined的值。 空值总是虚假的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM