Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

223
Vistas
No se puede eliminar una clave de JSON Array en ES6

Estoy escribiendo un código JS en el que quiero eliminar una clave específica de JSON Array y mi código es el siguiente.

 var obj = [ { XXX: "2", YYY: "3", ZZZ: "4" }, { XXX: "5", YYY: "6", ZZZ: "7" }, { XXX: "1", YYY: "2", ZZZ: "3" } ]; for (var i = 0; i < obj.length; i++) { delete obj[i].YYY } /*obj=obj.forEach(item =>{ return delete item.YYYY});*/ console.log(obj);

Este código funciona bien y me está dando el resultado esperado, pero cuando trato de ejecutarlo usando forEach (líneas comentadas), me muestra indefinido.

¿Dónde me estoy equivocando?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Simplemente elimine el obj = parte de su código. forEach siempre devuelve undefined . Dado que está modificando los objetos en su matriz y desea replicar el ciclo for , forEach está bien, simplemente no reasignar (y no es necesario return en la devolución de llamada):

 obj.forEach(item => { delete item.YYY; });

Ejemplo en vivo:

 var obj = [ { XXX: "2", YYY: "3", ZZZ: "4" }, { XXX: "5", YYY: "6", ZZZ: "7" }, { XXX: "1", YYY: "2", ZZZ: "3" } ]; obj.forEach(item => { delete item.YYY; }); console.log(obj);

(Eliminé el error tipográfico del código forEach , tenías una Y adicional).

Dicho esto, no hay nada de malo con un bucle for , o podrías usar un bucle for-of :

 for (const item of obj delete item.YYY; }

Ejemplo en vivo:

 var obj = [ { XXX: "2", YYY: "3", ZZZ: "4" }, { XXX: "5", YYY: "6", ZZZ: "7" }, { XXX: "1", YYY: "2", ZZZ: "3" } ]; for (const item of obj delete item.YYY; } console.log(obj);

Otra alternativa es crear una nueva matriz con nuevos objetos que no tengan YYY , a través del map y quizás con desestructuración:

 obj = obj.map(({YYY, ...rest}) => rest);

Ejemplo en vivo:

 let obj = [ { XXX: "2", YYY: "3", ZZZ: "4" }, { XXX: "5", YYY: "6", ZZZ: "7" }, { XXX: "1", YYY: "2", ZZZ: "3" } ]; obj = obj.map(({YYY, ...rest}) => rest); console.log(obj);

about 4 years ago · Juan Pablo Isaza Denunciar

0

forEach no devuelve un valor.

 var obj = [{ XXX: "2", YYY: "3", ZZZ: "4" }, { XXX: "5", YYY: "6", ZZZ: "7" }, { XXX: "1", YYY: "2", ZZZ: "3" } ]; obj.forEach(item => delete item.YYY); console.log(obj);

Si no desea mutar la matriz original, puede usar Array.map :

 var obj = [{ XXX: "2", YYY: "3", ZZZ: "4" }, { XXX: "5", YYY: "6", ZZZ: "7" }, { XXX: "1", YYY: "2", ZZZ: "3" } ]; obj = obj.map(item => (delete item.YYY, item)); console.log(obj);

about 4 years ago · Juan Pablo Isaza Denunciar

0

El valor de valor de Return value de Array.prototype.forEach() no está undefined , el objeto real se modifica. Además, puede acortar su código eliminando las llaves ( {...} ) y return la palabra clave:

 var obj = [ { XXX: "2", YYY: "3", ZZZ: "4" }, { XXX: "5", YYY: "6", ZZZ: "7" }, { XXX: "1", YYY: "2", ZZZ: "3" } ]; obj.forEach(item => delete item.YYY); console.log(obj);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda