Cómo eliminar una propiedad de un objeto JavaScript

Hay varias formas de eliminar una propiedad de un objeto JavaScript. Descubra las alternativas y la solución sugerida

La forma semánticamente correcta de eliminar una propiedad de un objeto es utilizar ladeletepalabra clave.

Dado el objeto

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

puede eliminar una propiedad de este objeto usando

delete car.brand

Delete a property from an object in JavaScript

Funciona también expresado como:

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

Establecer una propiedad como indefinida

Si necesita realizar esta operación de una manera muy optimizada, por ejemplo, cuando está operando con una gran cantidad de objetos en bucles, otra opción es establecer la propiedad enundefined.

Por su naturaleza, la realización dedeletees unmucho mas lentoque una simple reasignación aundefined, más de 50 veces más lento.

Sin embargo, tenga en cuenta que la propiedad no se elimina del objeto. Su valor se borra, pero sigue ahí si itera el objeto:

Iterate over the object

Usandodeletesigue siendo muy rápido, solo debe investigar este tipo de problemas de rendimiento si tiene una muy buena razón para hacerlo, de lo contrario, siempre es preferible tener una semántica y una funcionalidad más claras.

Eliminar una propiedad sin mutar el objeto

Si le preocupa la mutabilidad, puede crear un objeto completamente nuevo copiando todas las propiedades del antiguo, excepto la que desea eliminar:

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 }, {})

(verObject.keys())

Create a new object without mutating the original


Más tutoriales de js: