a=[[2018-08-01,30],[2018-08-02,50],[2018-08-03,70],[2018-08-04,40],[2018-08-05,20]]
b=[[2018-08-01,30],[2018-08-06,20]]
c=[[2018-08-02,50],[2018-08-03,70],[2018-08-04,40],[2018-08-05,20],[2018-08-06,20],[2018-08-07,20]]
在不确定a.b.c数组的长度情况下,如何补全成:
a=[[2018-08-01,30],[2018-08-02,50],[2018-08-03,70],[2018-08-04,40],[2018-08-05,20],[2018-08-06,0],[2018-08-07,0]]
b=[[2018-08-01,30],[2018-08-02,0],[2018-08-03,0],[2018-08-04,0],[2018-08-05,0],[2018-08-06,20],[2018-08-07,0]]
c=[[2018-08-01,0],[2018-08-02,50],[2018-08-03,70],[2018-08-04,40],[2018-08-05,20],[2018-08-06,20],[2018-08-07,20]]

解决方案 »

  1.   


    var keys={};
    a=[['2018-08-01',30],['2018-08-02',50],['2018-08-03',70],['2018-08-04',40],['2018-08-05',20]];
    b=[['2018-08-01',30],['2018-08-06',20]];
    c=[['2018-08-02',50],['2018-08-03',70],['2018-08-04',40],['2018-08-05',20],['2018-08-06',20],['2018-08-07',20]];
    a.forEach(function(item,index){
    keys[item[0]]={};
    keys[item[0]].a=1;
    });
    b.forEach(function(item,index){
    if(!keys[item[0]])keys[item[0]]={};
    keys[item[0]].b=1;
    });
    c.forEach(function(item,index){
    if(!keys[item[0]])keys[item[0]]={};
    keys[item[0]].c=1;
    });
    var index=0;
    for(var k in keys){
    if(!keys[k].a){a.splice(index,0,[k,0]);}
    if(!keys[k].b){b.splice(index,0,[k,0]);}
    if(!keys[k].c){c.splice(index,0,[k,0]);}
    index++;
    }
    console.log(a);
    console.log(b);
    console.log(c);