合并两个数组并赋值

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 吗?

像这样使用 mapreduce

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