Comment supprimer une propriété d'un objet JavaScript

Il existe différentes manières de supprimer une propriété d'un objet JavaScript. Découvrez les alternatives et la solution proposée

La manière sémantiquement correcte de supprimer une propriété d'un objet est d'utiliser ledeletemot-clé.

Compte tenu de l'objet

const car = {
  color: 'blue',
  brand: 'Ford'
}

vous pouvez supprimer une propriété de cet objet en utilisant

delete car.brand

Delete a property from an object in JavaScript

Cela fonctionne également exprimé comme:

delete car['brand']
delete car.brand
delete newCar['brand']

Définition d'une propriété sur indéfinie

Si vous devez effectuer cette opération de manière très optimisée, par exemple lorsque vous travaillez sur un grand nombre d'objets en boucles, une autre option consiste à définir la propriété surundefined.

En raison de sa nature, la performance dedeleteest unbeaucoup plus lentqu'une simple réaffectation àundefined, plus de 50 fois plus lent.

Cependant, gardez à l'esprit que la propriété n'est pas supprimée de l'objet. Sa valeur est effacée, mais elle est toujours là si vous itérez l'objet:

Iterate over the object

Utilisantdeleteest toujours très rapide, vous ne devriez vous pencher sur ce genre de problèmes de performances que si vous avez une très bonne raison de le faire, sinon il est toujours préférable d'avoir une sémantique et des fonctionnalités plus claires.

Supprimer une propriété sans muter l'objet

Si la mutabilité est un problème, vous pouvez créer un objet complètement nouveau en copiant toutes les propriétés de l'ancien, sauf celle que vous souhaitez supprimer:

const car = {
  color: 'blue',
  brand: 'Ford'
}
const prop = 'color'

const newCar = Object.keys(car).reduce((object, key) => { if (key !== prop) { object[key] = car[key] } return object }, {})

(voirObject.keys())

Create a new object without mutating the original

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: