Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

218
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!