使用第一个数组键遍历 2 个包含对象和 return 第二个数组的值的数组
Iterate through 2 arrays containing objects and return the values of a second array using the first arrays keys
我正在尝试让用户 .map()
映射 2 个数组和 return 使用 arr1
的现有键值的具有新键和值的结果数组
我正在使用以下数组
arr1 = [
{"name":"orange","mappedHeader":"dollar"},
{"name":"apple","mappedHeader":"coin"}
];
arr2 = [
{"orange":"red","pumpkin":"white","apple":"yellow", "plum":"green"},
{"orange":"pink","pumpkin":"brown","apple":"gold","plum":"blue"},
];
whatIWant = [
{"dollar":"red", "coin":"yellow"},
{"dollar":"pink", "coin","gold"}
];
我试过使用 .map()
和 .filter()
但我似乎没有正确实施它
请帮忙
arr1 包含映射字段和 headers
var arr1 = [
{"name":"orange","mappedHeader":"dollar"},
{"name":"apple","mappedHeader":"coin"}
];
arr2 包含 object 个我们将要转换的
var arr2 = [
{"orange":"red","pumpkin":"white","apple":"yellow", "plum":"green"},
{"orange":"pink","pumpkin":"brown","apple":"gold","plum":"blue"},
];
解决方案
//var whatIWant = [
// {"dollar":"red", "coin":"yellow"},
// {"dollar":"pink", "coin","gold"}
//];
var whatIWant = arr2.map(item=>{ /* Step 1*/
let obj = {};
arr1.forEach((v,i,a)=>obj[v.mappedHeader] = item[v.name]); /* Step 2 */
return obj; /* Step 3 */
})
循序渐进
- 使用 .map(...) 进行迭代 objects
- 使用 forEach(...) 将每个字段映射到新的空字段 object,从项目
item[v.name]
中获取值并使用 mappedHeader[= 设置具有该值的新字段29=]属性名字,obj[v.mappedHeader] = ...
- return obj as new object for new returning list/array
我正在尝试让用户 .map()
映射 2 个数组和 return 使用 arr1
我正在使用以下数组
arr1 = [
{"name":"orange","mappedHeader":"dollar"},
{"name":"apple","mappedHeader":"coin"}
];
arr2 = [
{"orange":"red","pumpkin":"white","apple":"yellow", "plum":"green"},
{"orange":"pink","pumpkin":"brown","apple":"gold","plum":"blue"},
];
whatIWant = [
{"dollar":"red", "coin":"yellow"},
{"dollar":"pink", "coin","gold"}
];
我试过使用 .map()
和 .filter()
但我似乎没有正确实施它
请帮忙
arr1 包含映射字段和 headers
var arr1 = [
{"name":"orange","mappedHeader":"dollar"},
{"name":"apple","mappedHeader":"coin"}
];
arr2 包含 object 个我们将要转换的
var arr2 = [
{"orange":"red","pumpkin":"white","apple":"yellow", "plum":"green"},
{"orange":"pink","pumpkin":"brown","apple":"gold","plum":"blue"},
];
解决方案
//var whatIWant = [
// {"dollar":"red", "coin":"yellow"},
// {"dollar":"pink", "coin","gold"}
//];
var whatIWant = arr2.map(item=>{ /* Step 1*/
let obj = {};
arr1.forEach((v,i,a)=>obj[v.mappedHeader] = item[v.name]); /* Step 2 */
return obj; /* Step 3 */
})
循序渐进
- 使用 .map(...) 进行迭代 objects
- 使用 forEach(...) 将每个字段映射到新的空字段 object,从项目
item[v.name]
中获取值并使用 mappedHeader[= 设置具有该值的新字段29=]属性名字,obj[v.mappedHeader] = ...
- return obj as new object for new returning list/array