[英]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
。 如果是这种情况,它会返回右侧的值。
记住0
或false
不被视为无效值。
在 JavaScript 中,空值是null
或undefined
的值。 空值总是虚假的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.