Open shfshanyue opened 3 years ago
function groupBy (collection, by) {
return collection.reduce((acc, x) => {
if (acc[by(x)]) { acc[by(x)].push(x)}
else { acc[by(x)] = [x] }
return acc
}, {})
}
function groupBy (data, filter) {
const map = {}
data.forEach(curr => {
const key = filter(curr)
if (!map[key]) map[key] = []
map[key].push(curr)
})
return map
}
function groupBy(arr = [], callback) {
const obj = {}
const keys = arr.map(callback)
keys.forEach(key => {
obj[key] = []
})
arr.forEach(ele => {
obj[callback(ele)].push(ele)
})
return obj
}
类似 lodash.groupBy