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

165
Vistas
Eliminar objeto que tiene un valor de matriz vacío

Así que tengo un objeto dentro de un archivo json como este:

 { "0": { "damage_type": "Scratch", "regions": [] }, "1": { "damage_type": "Dent", "regions": [] }, "2": { "damage_type": "Dent", "regions": [ "front side", "front window" ] } }

Lo que estoy tratando de lograr es eliminar el objeto que tiene regions vacías. Como esto:

 { "2": { "damage_type": "Dent", "regions": [ "front side", "front window" ] } }

Estoy usando un bucle for y sigo sin éxito:

 jsonfile.readFile(theJsonFile, function (err, obj) { if (err) console.error(err) for (var i = 0; i <= Object.keys(obj).length - 1; i++) { if (obj[i].damage_type.length < 1) { delete obj[i] } } }

¿Algunas ideas?

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

0

Llamando a los damages del valor analizado en lugar de obj , puede tomar todas las entradas como pares clave/valor, iterar sobre ellos y eliminar los "daños" sin región por sus ID:

 Object.entries(damages).forEach(([id, damage]) => { if (!damage.regions.length) { delete damages[id]; } });

Alternativamente, puede crear una estructura completamente nueva sin tocar la estructura original:

 const entries = Object.entries(damages); const filteredEntries = entries.filter(([_, damage]) => damage.regions.length); const filteredDamages = Object.fromEntries(filteredEntries);
about 4 years ago · Juan Pablo Isaza Denunciar

0

En este caso, primero necesita una matriz. Para convertir objetos en matrices, use la entrada de entrada

 let obj = { "0": { "damage_type": "Scratch", "regions": [] }, "1": { "damage_type": "Dent", "regions": [] }, "2": { "damage_type": "Dent", "regions": [ "front side", "front window" ] } }

matriz de conversión:

 const myentry= Object.entries(obj);

Ahora, la mejor manera de eliminar o filtrar una matriz es usar el método de filtro y, a cambio, obtener el otro objeto que tiene un valor de filtro.

Filtrar

 const myFiletrObj = myentry.filter(([_, obj]) => obj.regions.length).reduce(withObjectAssign, {}) function withObjectAssign(object, [key, value]) { return Object.assign(object, {[key]: value}) }

Esto le dará una salida filtrada.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede eliminar un nodo json por su clave

 var json = { ... }; var key = "foo"; delete json[key]; // Removes json.foo from the dictionary.
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