如何从 JavaScript 对象中删除键?

新手上路,请多包涵

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

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

我想做一个按键删除的功能:

removeFromObjectByKey('Cow');

原文由 Martin Ongtangco 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

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

以下示例都做同样的事情。

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

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

 // Example 3
 delete thisIsObject.Cow;

 let animals = {
 'Cow': 'Moo',
 'Cat': 'Meow',
 'Dog': 'Bark'
 };

 delete animals.Cow;
 delete animals['Dog'];

 console.log(animals);

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

原文由 jessegavin 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您使用的是 Underscore.js 或 Lodash,可以使用“省略”函数来完成。

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;
    }, {}
);

原文由 Mohammed Safeer 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题