Tengo una matriz de objetos

[ { group: 1 }, { group: 2 ], { group: 2 } ]

Quiero obtener el recuento de grupos distintos por valor de propiedad 'grupo', esperando el resultado de 2

¿Cómo hacer esto por es6 o reducir?

0
D Le 29 abr. 2020 a las 18:47

2 respuestas

Solo necesita almacenar conteos en su agregador para cada clave usando reducir.

const data = [ { 'group': 1 }, { 'group': 2 }, { 'group': 2 } ]

const groups = data.reduce((agg, curr)=>{
  if(agg[curr.group]){
    agg[curr.group] += 1
    }
  else{
    agg[curr.group] = 1
  }
  return agg
},{})

console.log(groups)
1
gautamits 29 abr. 2020 a las 15:57

No estoy seguro de entender bien su pregunta. Si desea agrupar su objeto por valor igual a 2, será útil usar filtro

    const obj = [ { group: 1 }, { group: 2 }, { group: 2 }, { group: 2 } ]

// new array with group value equals to 2

    const countGroup = () => {
      return obj.filter(it => it.group === 2)
    }

// count how many group with value equals to 2

const countGroupCount = () => {
      return obj.filter(it => it.group === 2)
    }

    console.log(countGroup())
console.log(countGroupCount())
0
UlanTursunbek 29 abr. 2020 a las 17:01