如何從JavaScript對像中刪除一個鍵?


這個問題在這裡已經有了答案:

假設我們有一個這樣的格式的對象:

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

我想做一個按鍵刪除的函數:

removeFromObjectByKey('Cow');


Answers



delete操作符允許您從對像中刪除屬性。

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

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

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

// Example 3
delete thisIsObject.Cow;

如果您有興趣,請閱讀理解刪除以獲得深入的解釋。




如果您使用的是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.cow = undefined;

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



如果您使用的是JavaScript shell,那麼就像下面這樣簡單:

delete object.keyname;