let list = [
{ name: 'aaa', class: '1', age: 10 },
{ name: 'bbb', class: '1', age: 11 },
{ name: 'ccc', class: '2', age: 12 },
{ name: 'ddd', class: '2', age: 13 },
{ name: 'eee', class: '3', age: 14 },
{ name: 'fff', class: '3', age: 15 },
{ name: 'ggg', class: '4', age: 11 },
{ name: 'hhh', class: '4', age: 12 },
{ name: 'iii', class: '4', age: 13 },
]
const list2 = list.reduce((pre, cur, index) => {
let obj = {}
if (index == 0) {
obj.class = cur.class
obj.detail = [cur]
pre.push(obj)
} else {
const i = pre.findIndex(item => item.class == cur.class)
if (i > -1) {
pre[i].detail.push(cur)
} else {
obj.class = cur.class
obj.detail = [cur]
pre.push(obj)
}
}
return pre
}, [])
// 得到list2
list2 = [
{
class: '1',
detail: [{ name: 'aaa', class: '1', age: 10 }, { name: 'bbb', class: '1', age: 11 },]
},
{
class: '2',
detail: [{ name: 'ccc', class: '2', age: 12 }, { name: 'ddd', class: '2', age: 13 },]
},
{
class: '3',
detail: [{ name: 'eee', class: '3', age: 14 }, { name: 'fff', class: '3', age: 15 },]
},
{
class: '4',
detail: [{ name: 'ggg', class: '4', age: 11 }, { name: 'hhh', class: '4', age: 12 }, { name: 'iii', class: '4', age: 13 },]
}
]
js按照某个字段分类数组
于 2024-02-29 12:01:35 首次发布