数组拆分重组

获取到的数组格式为:

let arr = [
  {
    data: [{ num: "111" }, { num: "222" }, { num: "333" }],
    name: "张三",
  },
  {
    data: [{ num: "444" }, { num: "555" }],
    name: "李四",
  },
  {
    data: [{ num: "777" }],
    name: "王五",
  },
];

期望数据格式:

[{"num":"111","name":"张三"},{"num":"222","name":"张三"},{"num":"333","name":"张三"},{"num":"444","name":"李四"},{"num":"555","name":"李四"},{"num":"777","name":"王五"}]

用下面方法改造数组格式:

getList() {
  let list = [];
  let arr = [
    {
      data: [{ num: "111" }, { num: "222" }, { num: "333" }],
      name: "张三",
    },
    {
      data: [{ num: "444" }, { num: "555" }],
      name: "李四",
    },
    {
      data: [{ num: "777" }],
      name: "王五",
    },
  ];
  let tempArr = [];
  for (let i = 0; i < arr.length; i++) {
    let arrData = arr[i].data;
    if (arrData != undefined && arrData != "" && arrData != null) {
      for (let j = 0; j < arrData.length; j++) {
        arrData[j].name = arr[i].name;
        // arrData有数据的,取出数据并拼接
        tempArr.push(...arrData);
      }
    } else {
      // arrData无数据的,赋默认值
      tempArr.push(arr[i]);
    }
  }
  // 去重
  list = [...new Set(tempArr)];
  console.log("list", list);
},

posted @ 2021-12-09 16:01  晚风轻踩云朵  阅读(137)  评论(0)    收藏  举报