1、ES6将两个数组合并成一个对象数组
有这么两个数组
let metrodates = [ “2008-01”,“2008-02”,“2008-03” ];、
let figures = [ 0, 0.555, 0.293]
想要这样的结果
let result = [
{data: 0, date: “2008-01”}, {data: 0.555, date: “2008-02”}, {data: 0.293, date: “2008-03”}];
方案一
let result = [];
for(let index in metrodates){
result.push({data: figures[index], date: metrodates[index]});
}
此方案为最原始方法,简单
方案二
let result = metrodates.map((date,i) => ({date, data: figures[i]}));
此方案使用了ES6中的map,简洁,但本质还是遍历
方案三
const zip = ([x,...xs], [y,...ys]) => {
if (x === undefined || y === undefined)
return [];
else
return [[x,y], ...zip(xs, ys)];
}
let result = zip(metrodates, figures).map(([date, data]) => (