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

239
Visualizações
How to count values in a nested array using Lodash?

I am trying to calculate the unique count of users.hobbies using Lodash. The data looks like this:

var users = [
  { 'user': 'barney', 'age': 36, 'hobbies': ['soccer','basketball']  },
  { 'user': 'fred',   'age': 40, 'hobbies': ['soccer', 'golf'] },
  { 'user': 'tom',   'age': 25,  'hobbies': ['golf'] }
];

I have tried:

_.countBy(users, 'hobbies');
// { 'soccer,basketball': 1, 'soccer,golf': 1, golf: 1 }

The desired output is:

// { 'soccer':2, 'basketball':1, 'golf':2}

I guess I would need to split the value of users.hobbies but I am not exactly sure how to apply it.

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

0

You can flatten the hobbies before:

const users = [
  { 'user': 'barney', 'age': 36, 'hobbies': ['soccer','basketball']  },
  { 'user': 'fred',   'age': 40, 'hobbies': ['soccer', 'golf'] },
  { 'user': 'tom',   'age': 25,  'hobbies': ['golf'] }
];

const count = _.countBy(users.flatMap(user => user.hobbies));
console.log(count);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>

about 4 years ago · Juan Pablo Isaza Relatório

0

Not sure about lodash, but here is solution with native js

users.reduce((total, el) => {
    el.hobbies.forEach(el => {
        if (el in total) total[el]++
        else total[el] = 1
    })
    return total
}, {})
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