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"