Skip to content Skip to sidebar Skip to footer

Javascript Es6 - Count Duplicates To An Array Of Objects

I'm creating for my list of products a filter to count all producers and display like this: Apple (3) I eliminated the duplicates from array: ['Apple','Apple','Apple'] I used this

Solution 1:

You can use reduce to summarize the array and map for form the desired output

let obj = ["Apple", "Apple", "Apple", "Orange"];

let result = Object.values(obj.reduce((c, v) => {
  c[v] = c[v] || [v, 0];
  c[v][1]++;
  return c;
},{})).map(o=>({[o[0]] : o[1]}));

console.log(result);

Solution 2:

Here:

constarray = ["a", "a", "b"]
const result = { }

for (let i = 0; i < array.length; i++) {
  result[array[i]] = (result[array[i]] || 0) + 1
}

Object.keys(result).map(key => ({ [key]: result[key] }))

That last line is the key for

I was trying to do this but it returns me object

Solution 3:

you can simply do it by using Lodash countBy function

filters() {
    this.category2 = this.category.map(value => value.producer);
    this.filteredArray = _.countBy(this.category2);
    console.log(this.filteredArray);
// Object {Apple: 3, Orange: 1}
  }

Post a Comment for "Javascript Es6 - Count Duplicates To An Array Of Objects"