js数组对象的操作

const arr = [{
    title: '表1',
    data: [{
        time: '2012-12-12',
        value: 1
    },{
        time: '2012-12-13',
        value: 2
    },{
        time: '2012-12-14',
        value: 8
    }]
},{
    itle: '表2',
    data: [{
        time: '2012-12-12',
        value: 3
    },{
        time: '2012-12-13',
        value: 4
    },{
        time: '2012-12-19',
        value: 5
    }]
}]

把两个对象数组里相同时间(time)的value合到一个对象里,最终生成新的数组对象

[{
    time: '2012-12-12',
    value: 1,
    value1: 3
},{
    time: '2012-12-13',
    value: 2,
    value1: 4
},{
    time: '2012-12-14',
    value: 8,
    value1: ''
},{
    time: '2012-12-19',
    value: '',
    value1: 5
}]

当然这里不做去重,比如表1里有多个相同的时间,不做去重,只是把表1表2相同的时间合到一个对象里就可以

并且表1表2data的长度可能会不一样

求帮忙

阅读 2.5k
2 个回答

遍历数组,然后把 time 和 value 存到新的数组里。如果 time 在新数组里存在,则添加一个 value1 字段,并赋值

遍历数组,用一个map对象存储,key为时间,值为对象

{
"2020-03-21":{
   "time": "2020-03-21",

   "value": 1
}
…
}

最后取值组成的数组即可Object.value(map)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题