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

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

var thisIsObject= {'Cow' : 'Moo','Cat' : 'Meow','Dog' : 'Bark'};

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

removeFromObjectByKey('Cow');
1644560 次浏览

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

下面的例子都做同样的事情。

// Example 1var key = "Cow";delete thisIsObject[key];
// Example 2delete thisIsObject["Cow"];
// Example 3delete thisIsObject.Cow;

let animals = {'Cow': 'Moo','Cat': 'Meow','Dog': 'Bark'};
delete animals.Cow;delete animals['Dog'];
console.log(animals);

如果您有兴趣,请阅读理解删除以获得深入的解释。

这很容易:

delete object.keyname;

delete object["keyname"];

如果您使用的是Underscore.js或Lodash,则有一个函数'omit'可以执行此操作。
http://underscorejs.org/#omit

var thisIsObject= {'Cow' : 'Moo','Cat' : 'Meow','Dog' : 'Bark'};_.omit(thisIsObject,'Cow'); //It will return a new object
=> {'Cat' : 'Meow', 'Dog' : 'Bark'}  //result

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

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

使用纯JavaScript,使用:

delete thisIsObject['Cow'];

另一种选择纯JavaScript。

thisIsObject = Object.keys(thisIsObject).filter(key =>key !== 'cow').reduce((obj, key) =>{obj[key] = thisIsObject[key];return obj;}, {});