JSFiddle - React, Tailwind, and code Playground

by moeishaa

JavaScript

const endorsements = [
	{ skill: 'css', user: 'Bill' },
  { skill: 'html', user: 'Moe' },
  { skill: 'javascript', user: 'John' },
  { skill: 'javascript', user: 'Taylor' },
  { skill: 'css', user: 'Peter' }
];

const parse = ends => {
	return ends.reduce((soFar, current) => {
  	let skill = soFar.find(s => s.skill === current.skill);
    
    if (skill) {
    	skill.users.push(current.user);
      skill.count++;
    }
    else {
    	soFar.push({
      	skill: current.skill,
        users: [current.user],
        count: 1
      });
    }
    
    return soFar;
  }, []);
};

console.log(parse(endorsements));