Skip to content

Instantly share code, notes, and snippets.

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