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"];
