1. 程式人生 > 其它 >陣列拆分重組

陣列拆分重組

獲取到的陣列格式為:

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);
},