这里的Javascript新手。我有三个阵列:
var code = [123, 456, 789];
var year = [2013, 2014, 2015];
var period = [3, 4, 5];
我希望将它们合并为
var all = [
{"code": 123, "year": 2013, "period": 3},
{"code": 456, "year": 2014, "period": 4},
{"code": 789, "year": 2015, "period": 5}
];
如何在普通的Javascript中轻松完成此操作?
答案 0 :(得分:3)
您应该使用map
方法,该方法具有callback
功能。 map
方法通过对每个项目应用provided
函数来创建新数组。
var code = [123, 456, 789];
var year = [2013, 2014, 2015];
var period = [3, 4, 5];
console.log(code.map(function(item,i){
return {"code":item,"year":year[i],"period":period[i]};
}))

答案 1 :(得分:3)
我更喜欢Alexandru-Ionut Mihai's solution,但您可能会更加健壮:
const len = Math.min(code.length, year.length, period.length);
let results = [];
for(let i = 0; i < len; i++) {
results.push({
code: code[i],
year: year[i],
period: period[i]
});
}
答案 2 :(得分:0)
您可以使用动态方法,使用数组中的给定键和数组来迭代数据。
var code = [123, 456, 789],
year = [2013, 2014, 2015],
period = [3, 4, 5],
keys = ['code', 'year', 'period'],
result = [code, year, period].reduce(function (r, a, i) {
a.forEach(function (v, j) {
(r[j] = r[j] || {})[keys[i]] = v;
});
return r;
}, []);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }