合并第一个数组作为对象键,第二个数组作为其值

时间:2018-04-16 17:13:20

标签: javascript arrays object key

我使用.concat

组合了三个数组
18.02.0-ce, build fc4de44

我将使用keyArr作为我的“键”来换取数组的“索引”。我正在合并我作为对象进入我的密钥的数据。另外,将奇数与偶数分开。预期产出:

keyArr =  ["meat", "veggies", "fish"]
dataArr = meatArr.concat(vegArr,fishArr);

//value
dataArr = [0: "chicken", 1: "pork", 2: "lettuce", 3: "beans", 4: "shark", 5: "nemo"]

强烈建议您就如何处理此问题提出任何建议或方法。感谢

1 个答案:

答案 0 :(得分:2)

由于每个单独的数组都有相同数量的项,因此创建数组的对象,迭代一个数组,并使用对象中的键和迭代中的索引将数组映射到新的对象数组。

不需要.concat()数组。

var meatArr = ["chicken", "pork"],
    vegArr = ["lettuce", "beans"],
    fishArr = ["shark", "nemo"];
    
var arrays = {meat: meatArr, veggies: vegArr, fish: fishArr};
    
var result = meatArr.map((_, i) => 
  Object.keys(arrays)
        .reduce((res, key) => ({...res, [key]: arrays[key][i]}), {})
);

console.log(result);

您可能需要一个转换器,具体取决于您要定位的JS实现。