假设我们有一个具有以下格式的对象:

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

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

removeFromObjectByKey('Cow');

当前回答

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

以下示例都做了相同的事情。

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

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

// Example 3
delete thisIsObject.Cow;

让动物={“奶牛”:“哞哞”,“猫”:“喵”,“狗”:“吠叫”};删除动物。奶牛;删除动物[日志];console.log(动物);

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

其他回答

如果您正在使用Undercore.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;
    }, {}
);

这很简单:

delete object.keyname;

or

delete object["keyname"];

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

以下示例都做了相同的事情。

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

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

// Example 3
delete thisIsObject.Cow;

让动物={“奶牛”:“哞哞”,“猫”:“喵”,“狗”:“吠叫”};删除动物。奶牛;删除动物[日志];console.log(动物);

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