JS:使用扩展名排除属性
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
我想和你们分享一下这个小技巧,因为我发现自己时不时需要用到它。
JavaScript 中的扩展运算符非常有用。
例如,要创建对象的副本:
const firstObject = {id: 0, name: 'John'};
const secondObject = {...firstObject};
console.log(firstObject);
console.log(secondObject);
// { id: 0, name: 'John'}
// { id: 0, name: 'John'}
但是你知道吗?它还可以用于在展开时排除属性。
const firstObject = {id: 0, firstName: 'John', lastName: 'Smith', age: 77 };
// take every property except age:
const {age, ...secondObject} = firstObject;
console.log(firstObject);
console.log(secondObject);
// { id: 0, firstName: 'John', lastName: 'Smith', age: 77 }
// { id: 0, firstName: 'John', lastName: 'Smith' }
上面的例子会将数据提取出来age作为单独的变量,并将剩余部分放入对象中secondObject。你可以对任意数量的属性执行此操作。