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

272
Vistas
Cuente el número de todas las claves específicas (o valores) en json object/array- JavaScript/Angular?

Tengo un gran objeto json anidado como este, y quiero contar la cantidad de mascotas en todo el objeto. ¿Cómo puede lograr eso? Me cansé de Object.keys(obj[0]).length pero no logré el resultado deseado. Además, ¿cómo puedo profundizar en la matriz para contar, por ejemplo, algún valor anidado como color en pet ?

¿Cuál es el buen tutorial para trabajar con matrices de niveles múltiples en JavaScript o Angular?

 obj = [ { "person": { "name": "a", }, "pet": { "name": "1" } }, { "person": { "name": "b", }, "pet": { "name": "2", "color": "black", } }, { "person": { "name": "c", }, "pet": { "name": "3", "color": "red", } } ]
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Filtre la matriz con la propiedad de la mascota y la propiedad de color de la mascota y realice el conteo de la matriz.

 let obj = [ { "person": { "name": "a", }, "pet": { "name": "1" } }, { "person": { "name": "b", }, "pet": { "name": "2", "color": "black", } }, { "person": { "name": "c", }, "pet": { "name": "3", "color": "red", } } ]; let petItemCount = obj.filter(x => x["pet"]).length; console.log(petItemCount); let petItemWithColorCount = obj.filter(x => x["pet"] && x["pet"]["color"]).length; console.log(petItemWithColorCount);

En caso de que el valor de la pet sea posiblemente null o el color de la mascota sea posiblemente nulo,

 let petItemCount = obj.filter(x => x["pet"] != undefined).length; console.log(petItemCount); let petItemWithColorCount = obj.filter(x => x["pet"] && x["pet"]["color"] != undefined).length; console.log(petItemWithColorCount);
about 4 years ago · Juan Pablo Isaza Denunciar

0

let pets = 0; obj.map( item => { if(item.pet) { pets += 1; } })
about 4 years ago · Juan Pablo Isaza Denunciar

0

Parece que reducir sería un ajuste:

 colors = obj.reduce( (sum, { pet }) => pet.color !== undefined ? ++sum : sum, 0)); // -> initial count value
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