Hvordan fjerner jeg en nøkkel fra et JavaScript-objekt?


La oss si at vi har et objekt med dette formatet:

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

Jeg ønsket å lage en funksjon som fjerner etter nøkkel:

removeFromObjectByKey('Cow');

Svar #1

delete-operatoren lar deg fjerne en egenskap fra et objekt.

Følgende eksempler gjør alle det samme.

// 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);

Hvis du er interessert, les Forstå Slett for en grundig forklaring.

Svar #2

Hvis du bruker Underscore.js eller Lodash, finnes det en funksjon 'omit' som gjør det.
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

Hvis du vil endre det nåværende objektet, tilordne det returnerte objektet til det nåværende objektet.

thisIsObject = _.omit(thisIsObject,'Cow');

Med ren JavaScript, bruk:

delete thisIsObject['Cow'];

Et annet alternativ med ren JavaScript.

thisIsObject = Object.keys(thisIsObject).filter(key =>
    key !== 'cow').reduce((obj, key) =>
    {
        obj[key] = thisIsObject[key];
        return obj;
    }, {}
);

Svar #3

Det er så enkelt som:

delete object.keyname;

eller

delete object["keyname"];

Relaterte artikler