如何从 JS 对象中删除属性?
问题描述
给定一个对象:
let obj={
name:'echohye',
age:'18',
hobby:'sleep'
}
如何删除属性 hobby以得到以下 obj?
let obj={
name:'echohye',
age:'18'
}
解决方案1
delete obj.hobby;
// or,
delete obj['hobby'];
// or,
var prop = "hobby";
delete obj[prop];
解决方案2
使用对象解构这一 ECMAScript 6 功能,它非常简单:
let obj={
name:'echohye',
age:'18',
hobby:'sleep'
}
let { hobby, ...rest } = obj;
注意
...rest
不可以再命名obj
这不是删除属性,而是创建一个浅拷贝,而不是跨指定的键和值进行复制。这是一个非常大的区别。