js数据分组

一.一个字段一次分组


  const arr = [{
      "id": "1001",
      "name": "同学1",
      "value": "jack"
  },
  {
      "id": "1001",
      "name": "同学1",
      "value": "tom"
  },
  {
      "id": "1002",
      "name": "同学2",
      "value": "mike"
  },
  {
      "id": "1002",
      "name": "同学2",
      "value": "lily"
  },
  {
      "id": "1002",
      "name": "同学2",
      "value": "joe"
  },
  {
      "id": "1003",
      "name": "同学3",
      "value": "harry"
  }
  ];
  function handleGroup(arr) {
      const obj = {};
      const groups = [];
      arr.forEach(item => {
 
          if (!obj[item.id]) { // 根据id分组
              groups.push({
                  groupName: item.id,
                  items: [item]
              });
              obj[item.id] = item;
          } else {
 
              groups.find(v => {// 选择符合条件的第一个元素
                  if (v.groupName === item.id) {
                      v.items.push(item);
                  }
              });
 
 
          }
      });
      return groups;
  }
 
posted @ 2022-02-11 17:07  大强子pq  阅读(836)  评论(0)    收藏  举报