Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

220
Visualizações
How can I count occurrence of property values in array of objects

I have an array of objects sample below:

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

I'd like to iterate through languages property and return the number of occurrence of each language value like below:

[
  { language: "English", count: 2 },
  { language: "Arabic", count: 1 },
  { language: "Shona", count: 1 },
  { language: "Northern Ndebele", count: 1 }
  
];
I have tried looping through the object but the it doesn't return any value:

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} `);
  }
}

Is there any other method that I can achieve the expected result without using loops?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Use Array#reduce, looping over the languages for each object and using an object to keep track of the frequency of each language.

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda