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

211
Vistas
¿Cómo puedo contar la aparición de valores de propiedad en una matriz de objetos?

Tengo una serie de ejemplos de objetos a continuación:

 const countriesSample = [{ name: "Yemen", capital: "Sana'a", languages: ["Arabic"], { name: "Zambia", capital: "Lusaka", languages: ["English"], }, { name: "Zimbabwe", capital: "Harare", languages: ["Shona", "English", "Northern Ndebele"], }, ];

Me gustaría iterar a través de la propiedad de idiomas y devolver el número de ocurrencias de cada valor de idioma como se muestra a continuación:

 [ { language: "English", count: 2 }, { language: "Arabic", count: 1 }, { language: "Shona", count: 1 }, { language: "Northern Ndebele", count: 1 } ];
He intentado recorrer el objeto, pero no devuelve ningún valor:

 let totalOccurence = 0; for (let i = 0; i < countries.length; i++) { for (let j = 0; j < countries[i].length; j++) { totalOccurence += countries[j].length; console.log(`language: ${countries[j].languages}, count:${totalOccurence} `); } }

¿Hay algún otro método en el que pueda lograr el resultado esperado sin usar bucles?

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

0

Use Array#reduce , recorriendo los idiomas de cada objeto y usando un objeto para realizar un seguimiento de la frecuencia de cada idioma.

 const countriesSample=[{name:"Yemen",capital:"Sana'a",languages:["Arabic"]},{name:"Zambia",capital:"Lusaka",languages:["English"]},{name:"Zimbabwe",capital:"Harare",languages:["Shona","English","Northern Ndebele"]}]; let res = Object.values(countriesSample.reduce((acc, {languages})=>{ languages.forEach(language => ++(acc[language] ??= {language, count: 0}).count); return acc; },{})); console.log(res);

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