映射两个数组以获取对象数组

问题描述

我需要帮助获取一个数组中的元素并将其映射到数组数组中的元素以获取键值对中的对象数组 例如:

let arr1 = ["ProjectUniqueID","CompanyUniqueID","ClientProjectID"];
let arr2 = [["20-2867451","2","20-2867451",],["05-3134339","1","05-3134339"],["80-8424593","3","80-8424593",["18-2895279","18-2895279"]
            ]



result = [{ ProjectUniqueID: "20-2867451",CompanyUniqueID: "2",ClientProjectID: "20-2867451"},{ ProjectUniqueID: "05-3134339",CompanyUniqueID: "1",ClientProjectID: "05-3134339"},{ ProjectUniqueID: "80-8424593",CompanyUniqueID: "3",ClientProjectID: "80-8424593"},{ ProjectUniqueID: "18-2895279",ClientProjectID: "18-2895279"}]

解决方法

我认为你可以像这样使用 Object.fromEntries 函数。

let arr1 = ["ProjectUniqueID","CompanyUniqueID","ClientProjectID"];
let arr2 = [["20-2867451","2","20-2867451",],["05-3134339","1","05-3134339"],["80-8424593","3","80-8424593",["18-2895279","18-2895279"]
            ]
let arrObj = [];
arr2.map((element)=>{
  let item = Object.fromEntries(
    arr1.map((el,index) => [el,element[index]])
  );
  arrObj.push(item);
  }
)
console.log(arrObj)

,
let result =[]
arr2.forEach(element => {
    let data = `{${arr1[0]} : ${element[0]},${arr1[1]} : ${element[1]},${arr1[2]} : ${element[2]} }`
    result.push(data)
});

,

循环arr2,创建一个临时对象,并尝试将arr1的每个条目映射为键,将arr2上当前位置的每个元素映射为值那些钥匙。最后,将临时对象推入一个数组。例如:

let arrObj = [];
for(let entry of arr2) {
    let obj = {
            [arr1[0]]: entry[0],[arr1[1]]: entry[1],[arr1[2]]: entry[2],};
    arrObj.push(obj);
}

如果你有很多数据要循环,这可能是个问题