任务
删除 age 属性
let obj = { name: 'xiaoming', age: 11, id: 2}
解决
方法1:
对象的解构
let {age, ...rest} = obj
console.log(age) //11
console.log(rest) //{ name: 'xiaoming', id: 2 }
对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。即等号左边的两个变量的次序,与等号右边两个同名属性的次序不一致,对取值完全没有影响。
方法2:
delete
delete obj.age
console.log(obj) // { name: 'xiaoming', id: 2 }
delete 只能删除对象上的属性, 不能删除定义的变量, 并且这个Operator/行为 非常慢
方法3:
深拷贝
// 请参考百度/Google,文章很多
拓展
undefined
令属性等于 undefined, 速度会很快, 但是会导致内容泄露,
什么时候用delete
,什么时候用undefined
,参考下面stack overflow的文章
参考文章
请问js有可以删除对象里某个属性但不改变原对象的方法吗?
How do I remove a property from a JavaScript object?推荐
声明:
此文章包括但不限于思路, 字符等均由本人工作场所附近的二手罗技白色背光G610红轴机械键盘
(以下简称键盘),
自发敲击而得,该键盘与本人并无直接关系,如有侵权行为, 请自行联系该键盘, 或提供侵权证据,博主可免费协助被侵权方进行维权. 开玩笑…