最近开发遇到了一个数组元素分类的问题,运用了数组的reduce方法,在此记录下来。
function classify(arr) {
const countedObj = arr.reduce((pre, cur) => {
if(pre[cur.level]){
pre[cur.level].push(cur)
}else{
pre[cur.level] = [cur]
}
return pre
}, {})
return Object.entries(countedObj).reduce((pre, cur) => {
pre.push(cur[1])
return pre
}, [])
}
let arr = [
{level:'1',name:"张三"},
{level:'2',name:"王五"},
{level:'2',name:"赵六"},
{level:'3',name:"王八"},
{level:'1',name:"李四"},
{level:'1',name:"吴彦祖"},
]
console.log(classify(arr))