将数组根据某条属性拆分成多个数组

时间:2024-10-09 22:35:46

项目场景:

`后端返回一个大的数组,前端需要将此数组根据id来拆分成多个数组

问题描述

数据内容:

const caseList = [
    {
      busi_name: 'Android标准兼容性测试',
      case_creator: 'user',
      case_desc: '终端标准兼容性测试用例',
      case_id: 5630162,
    },
    {
      busi_name: 'Android标准兼容性测试',
      case_creator: 'user',
      case_desc: '终端标准兼容性测试用例',
      case_id: 5630162,
    },
    {
      busi_name: 'Android标准兼容性测试',
      case_creator: 'user',
      case_desc: '终端标准兼容性测试用例',
      case_id: 5630163,
    },
    {
      busi_name: 'Android标准兼容性测试',
      case_creator: 'user',
      case_desc: '终端标准兼容性测试用例',
      case_id: 5630163,
    },
  ];
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

原因分析:

能百度绝不自己想哈哈哈,找到一个符合我现在场景的解决方法


解决方案:

这个是我百度的答案/article/9394270442/
后面代码给同事看,说这个看着太复杂了,给了一个解决方案。

	  const map = new Map();
      caseList.forEach((eachCase) => {
        const { case_id } = eachCase;
        if (map.has(case_id)) {
          map.get(case_id).push(eachCase);
        } else {
          map.set(case_id, [eachCase]);
        }
      });
      const sameIdCaseArrays = [];
      for (const [, value] of map) {
        sameIdCaseArrays.push(value);
      }
      return sameIdCaseArrays;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

看完之后觉得这样确实比之前更容易读懂一些~~