数组对象根据某个key值分组

数组对象根据某个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)

猜你喜欢

转载自www.cnblogs.com/wgy0528/p/13389710.html