JSFiddle - React, Tailwind, and code Playground
JavaScript
/*
Please, any ideas are appreciated:
what i want is:
the resulting array to be:
e = [
{ name: "John", occurence: 2 },
{ name: "Simon", occurence: 1 }
]
*/
c = [{name: 'John'}, {name: 'John'}, {name: 'Simon'}];
var d = c.reduce((countMap, word) => {countMap[word.name] = ++countMap[word.name] || 1;return countMap}, []);
var e = c.reduce((countMap, word) => {
q=[];
countMap[word.name] = ++countMap[word.name] || 1;
var p = {name: word.name, occurence: countMap[word.name]}
q.push(p);
return q
}, []);
console.log(e);