利用一个数组给另一个数组添加缺少的的对象

75 阅读1分钟

遍历数组a中的日期,取出的日期与b数组进行对比,如果a数组中缺少日期,就在a数组中的正确位置添加一个包含日期的值为0的对象

var a = [
    {date: '2023-04-01', val: 123},
    {date: '2023-04-02', val: 123},
    // {date: '2023-04-03', val: 123},
    {date: '2023-04-04', val: 123},
    // {date: '2023-04-05', val: 123},
    {date: '2023-04-06', val: 123},
    // {date: '2023-04-07', val: 123},
];
var b = ['2023-04-01', '2023-04-02', '2023-04-03', '2023-04-04', '2023-04-05', '2023-04-06', '2023-04-07']

var c = a.map(function(item){return item.date})
console.log(c);
for(let i = 0; i < b.length; i++) {
    if(b[i] !== c[i]) {
        c.splice(i,0,b[i])
        a.splice(i,0,{date: b[i], val: 0})
    }
    console.log(a);
}

返回的结果

[
  { date: '2023-04-01', val: 123 },
  { date: '2023-04-02', val: 123 },
  { date: '2023-04-03', val: 0 },
  { date: '2023-04-04', val: 123 },
  { date: '2023-04-05', val: 0 },
  { date: '2023-04-06', val: 0 },
  { date: '2023-04-07', val: 0 }
]