开发者问题收集

使用 JavaScript 将两个数组合并为一个对象数组

2017-06-25
55

给定数组 名称 ['a','b','c'] 数据 [1 , 2 , 3]

我想要结果 [{name: 'a', data: 1}, {name: 'b', data: 2}, {name: 'c', data: 3}] ,

我可以做到

 let combinedData = [];
 for (let i = 0; i < data.length; i++) {
     combinedData.push({name: name[i], data: data[i]});
 }

但我正在寻找一种优雅的方式,试一试。(使用外部库是可以接受的,例如 lodash)

3个回答

您可以使用 Array.map :

let name = ['a','b','c'];
let data = [1,2,3];
let combined = name.map((v, i) => ({name: v, data: data[i]}));
console.log(combined);
rgthree
2017-06-25

一个简单的 es6 解决方案可能是:

let arr1 = ...;
let arr2 = ...;

let data = arr1.map((item, i) => ({a: item, b: arr2[i]}));
Shane
2017-06-25
180731939
Osama
2017-06-25