使用扩展运算符在对象中根据条件判断添加属性

340 阅读1分钟
const isa = false;
const age = 20;
const bb = false;

const person = {
  id: "id1",
  name: "tc",
 
  ...(isa && { higt: "180" }),
  ...(age >= 18 && { address: "wuhan" }),
  ...(age >= 18 && bb && { work: "35f" }),
};
console.log("person===", person);//{ id: 'id1', name: 'tc', address: 'wuhan' }

注意点: 如果扩展运算符后面是一个空对象,则没有任何效果


let a = {...{}, a: 1}
a // { a: 1 }

Int类型、Boolen类型、undefinednull

如果扩展运算符后面是上面这几种类型,都会返回一个空对象,因为它们没有自身属性


{...1} // {}

{...true} // {}

{...undefined} // {}

{...null} // {}