合并两个数组并赋值
merge two arrays and assign values
如何合并两个数组并将数组 B 中的值分配给数组 a[x] 中的所有值,如下所示:
var areas = [];
var values = [];
values[0] = "aaa";
values[1] = "bbb";
areas[0] = ["A","B","C"];
areas[1] = ["D","E","F"];
预期值为:
array_three[0] = ["A" => "aaa","B" => "aaa", "C" => "aaa"];
array_three[1] = ["D" => "bbb","E" => "bbb", "F" => "bbb"];
我必须为此使用 map 或 forEach 吗?
像这样使用 map
和 reduce
:
var areas = [
["A","B","C"],
["D","E","F"]
];
var values = ["aaa", "bbb"];
var result = values.map(function(value, i) {
return areas[i].reduce(function(obj, area) {
obj[area] = value;
return obj;
}, {});
});
console.log(result);
或者很快使用 ES6 的箭头函数:
var areas = [
["A","B","C"],
["D","E","F"]
];
var values = ["aaa", "bbb"];
var result = values.map((value, i) => areas[i].reduce((obj, area) => (obj[area] = value, obj), {}));
console.log(result);
如何合并两个数组并将数组 B 中的值分配给数组 a[x] 中的所有值,如下所示:
var areas = [];
var values = [];
values[0] = "aaa";
values[1] = "bbb";
areas[0] = ["A","B","C"];
areas[1] = ["D","E","F"];
预期值为:
array_three[0] = ["A" => "aaa","B" => "aaa", "C" => "aaa"];
array_three[1] = ["D" => "bbb","E" => "bbb", "F" => "bbb"];
我必须为此使用 map 或 forEach 吗?
像这样使用 map
和 reduce
:
var areas = [
["A","B","C"],
["D","E","F"]
];
var values = ["aaa", "bbb"];
var result = values.map(function(value, i) {
return areas[i].reduce(function(obj, area) {
obj[area] = value;
return obj;
}, {});
});
console.log(result);
或者很快使用 ES6 的箭头函数:
var areas = [
["A","B","C"],
["D","E","F"]
];
var values = ["aaa", "bbb"];
var result = values.map((value, i) => areas[i].reduce((obj, area) => (obj[area] = value, obj), {}));
console.log(result);