很多时候,我们会面临比较特殊的一些情况, 需要我们根据变量值是否为null或者undefined来对对象进行属性的增加,如果值是undefined或null,就不添加这个属性。
let a = null
let b = 123
const m = {
a: a,
b: b
}
如果像这样,直接赋值,就会导致m出现为null的a属性,而我们只需要m有b属性就可以了。这个时候,我们可以这样利用对象的扩展运算符来实现。
let a = null
let b = 123
const m = {
...[a].reduce((s, o) => {
if(o !== null && o !== undefined) {
s['a'] = o
return s
} else {
return {}
}
}, {}),
...[b].reduce((s, o) => {
if(o !== null && o !== undefined) {
s['b'] = o
return s
} else {
return {}
}
}, {}),
}
最终我们就可以达到这样的效果了