Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查ES6语法内联对象中的null属性?_Javascript - Fatal编程技术网

Javascript 如何检查ES6语法内联对象中的null属性?

Javascript 如何检查ES6语法内联对象中的null属性?,javascript,Javascript,我有一个对象有五个属性,我只需要取其中的三个。对于其中一个属性,我需要检查它是否为空值,然后它应该为“未知”。 代码如下所示 let obj = { name:"john", lastName:"doe", age:24, city:null } function getSomeProperties(obj) { let newObj = { name: obj.name, age

我有一个对象有五个属性,我只需要取其中的三个。对于其中一个属性,我需要检查它是否为空值,然后它应该为“未知”。 代码如下所示

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);
}
但问题是,当我尝试内联检查city是否为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 })
或者使用nullish合并运算符:

({name, age, city: city ?? 'unknown' })
与上述操作相同:

city: obj.city ?? 'unknown'
它检查左侧是否为
null
未定义
。如果是这种情况,则返回右侧的值

请记住
0
false
不被视为空值

在JavaScript中,空值是
null
未定义的值。空值总是错误的。

newObj=({name,age,city})=>({name,age,city:city==null?'unknown':city}))(obj);