如何从 JavaScript 对象中删除密钥?
2022-08-29 21:58:25
假设我们有一个采用这种格式的对象:
var thisIsObject= {
'Cow' : 'Moo',
'Cat' : 'Meow',
'Dog' : 'Bark'
};
我想做一个按键删除的功能:
removeFromObjectByKey('Cow');
假设我们有一个采用这种格式的对象:
var thisIsObject= {
'Cow' : 'Moo',
'Cat' : 'Meow',
'Dog' : 'Bark'
};
我想做一个按键删除的功能:
removeFromObjectByKey('Cow');
删除
运算符允许您从对象中删除属性。
以下示例都执行相同的操作。
// 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);
如果您有兴趣,请阅读了解删除以获取深入的说明。
如果您使用的是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;
}, {}
);