![](/img/trans.png)
[英]How to get two arrays by mapping a predicate over an input array with Ramda
[英]Mapping two arrays to get an array of object
我需要帮助来获取一个数组中的元素并将其映射到 arrays 数组中的元素以获取键值对中的 object 数组 例如:
let arr1 = ["ProjectUniqueID","CompanyUniqueID","ClientProjectID"];
let arr2 = [["20-2867451","2","20-2867451",],
["05-3134339","1","05-3134339"],
["80-8424593","3","80-8424593",],
["18-2895279","3","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", CompanyUniqueID: "3", ClientProjectID: "18-2895279"}]
我认为您可以像这样使用 Object.fromEntries function 。
let arr1 = ["ProjectUniqueID","CompanyUniqueID","ClientProjectID"]; let arr2 = [["20-2867451","2","20-2867451",], ["05-3134339","1","05-3134339"], ["80-8424593","3","80-8424593",], ["18-2895279","3","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
中循环,创建一个临时 object,并尝试将arr1
的每个条目作为键,并将当前arr2
的每个元素作为键的值。 最后,将临时 object 推入一个数组。 例如:
let arrObj = [];
for(let entry of arr2) {
let obj = {
[arr1[0]]: entry[0],
[arr1[1]]: entry[1],
[arr1[2]]: entry[2],
};
arrObj.push(obj);
}
如果您有大量数据要循环,这可能是个问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.