Πώς μπορώ να αφαιρέσω ένα κλειδί από ένα αντικείμενο JavaScript;

Ας πούμε ότι έχουμε ένα αντικείμενο με αυτή τη μορφή:

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;

Αν σας ενδιαφέρει, διαβάστε Understanding Delete για μια λεπτομερή εξήγηση.

Σχόλια (9)

Αν χρησιμοποιείτε το 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.cow = undefined;

thisIsObject = JSON.parse(JSON.stringify(thisIsObject ));
Σχόλια (11)

Είναι τόσο εύκολο όσο:

delete object.keyname,

ή

``js delete object["keyname"],

Σχόλια (0)