javascript删除对象上的属性

任务

删除 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红轴机械键盘(以下简称键盘),
自发敲击而得,该键盘与本人并无直接关系,如有侵权行为, 请自行联系该键盘, 或提供侵权证据,博主可免费协助被侵权方进行维权. 开玩笑…

扫描二维码关注公众号,回复: 8884777 查看本文章
发布了25 篇原创文章 · 获赞 5 · 访问量 1132

猜你喜欢

转载自blog.csdn.net/tinfengyee/article/details/102861717