Skip to content

Instantly share code, notes, and snippets.

@suissa
Created September 9, 2018 06:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save suissa/11d2a0e26e3d3da5230c131969a51edd to your computer and use it in GitHub Desktop.
Save suissa/11d2a0e26e3d3da5230c131969a51edd to your computer and use it in GitHub Desktop.
JavaScript - groupby - mais semantico eh nois q voa bruxaooooo
const group = (obj, field) => obj[field]
const addValue = (result, obj, field) =>
result[obj[field]] || []
const addToGroup = (result, obj, field) =>
[...(addValue(result, obj, field)), obj]
const toNewGroupUsing = (field) => (result, obj) => ({
...result,
[group(obj, field)]: addToGroup(result, obj, field)
})
const groupThis = (list) => (field) =>
list.reduce(toNewGroupUsing(field), {})
const groupBy = groupThis(list)
console.log(
groupBy("level")
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment