如何从javascript对象中删除密钥?

How do I remove a key from a JavaScript object?

本问题已经有最佳答案,请猛点这里访问。

假设我们有一个具有这种格式的对象:

1
2
3
4
5
var thisIsObject= {
   'Cow' : 'Moo',
   'Cat' : 'Meow',
   'Dog' : 'Bark'
};

我想做一个按键删除的函数:

1
removeFromObjectByKey('Cow');


delete运算符允许您从对象中删除属性。

下面的例子都是一样的。

1
2
3
4
5
6
7
8
9
// Example 1
var key ="Cow";
delete thisIsObject[key];

// Example 2
delete thisIsObject["Cow"];

// Example 3
delete thisIsObject.Cow;

如果您感兴趣,请阅读理解删除,以进行深入的解释。


如果您使用的是underline.js或lodash,那么有一个函数"omit"可以做到这一点。http://underlinejs.org/省略

1
2
3
4
5
6
7
8
var thisIsObject= {
    'Cow' : 'Moo',
    'Cat' : 'Meow',
    'Dog' : 'Bark'
};
_.omit(thisIsObject,'Cow'); //It will return a new object

=> {'Cat' : 'Meow', 'Dog' : 'Bark'}  //result

如果要修改当前对象,请将返回对象指定给当前对象。

1
thisIsObject = _.omit(thisIsObject,'Cow');

使用纯javascript时,请使用:

1
delete thisIsObject['Cow'];

另一个纯javascript选项。

1
2
3
thisIsObject.cow = undefined;

thisIsObject = JSON.parse(JSON.stringify(thisIsObject ));


这就像:

1
2
3
 (1)   delete object.keyname;

 (2)   delete object["keyname"];