Skip to content

Instantly share code, notes, and snippets.

@sktwentysix
Last active June 20, 2022 01:09
Show Gist options
  • Save sktwentysix/380ea6dbc7b7622cd1c9d7c1e63b9b0d to your computer and use it in GitHub Desktop.
Save sktwentysix/380ea6dbc7b7622cd1c9d7c1e63b9b0d to your computer and use it in GitHub Desktop.
const survey = [
{ name: "Zuri", votedFramework: 'react' },
{ name: "Sofia", votedFramework: 'angular' },
{ name: "Elon", votedFramework: 'react' },
{ name: "Joe", votedFramework: 'react' },
{ name: "Alex", votedFramework: 'angular' },
{ name: "Josh", votedFramework: 'vue' },
{ name: "Jade", votedFramework: 'react' },
{ name: "Ted", votedFramework: 'angular' },
{ name: "Leo", votedFramework: 'react' },
{ name: "Nala", votedFramework: 'react' },
{ name: "Jack", votedFramework: 'react' },
{ name: "Fiadh", votedFramework: 'vue' },
];
const reducerCallback = (prevItem, vote) => {
if (prevItem[vote.votedFramework] === undefined) {
return { ...prevItem, [vote.votedFramework]: 1 }
}
return { ...prevItem, [vote.votedFramework]: prevItem[vote.votedFramework] + 1 }
}
console.log(survey.reduce(reducerCallback, {})) // { "react": 7, "angular": 3, "vue": 2 }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment