数组对象根据某个key值分组
准备数据
const array = [
{ id: 1, name: '小明', sex: '男' },
{ id: 3, name: '小红', sex: '女' },
{ id: 2, name: '小刚', sex: '男' },
{ id: 4, name: '小花', sex: '女' },
{ id: 5, name: '小甜甜', sex: '女' },
];
根据sex字段分组处理结果
// newArr = [
// [
// { id: 1, name: '小明', sex: '男' },
// { id: 2, name: '小刚', sex: '男' }
// ],
// [
// { id: 3, name: '小红', sex: '女' },
// { id: 4, name: '小花', sex: '女' },
// { id: 5, name: '小甜甜', sex: '女' }
// ]
// ]
const newArray = [];
array.map(item=>{
return [item]
}).forEach(([{...item}])=>{
const flag = newArray.find(([{...o}])=>o.sex === item.sex);
if(!flag) {
newArray.push([{...item}])
} else {
newArray.forEach(([{...y}], index)=>{
if(y.sex === item.sex) {
newArray[index].push(item)
}
})
}
})
console.log('newArray===', newArray)