处理数组对象,ES6合并对象数组

将所有对象,Name相同的值,count 合并成新的数组

 

 

 将格式改为:

先处理时间 

let time = _data.map(val=>{
  return val.start
})
console.log(time)
处理list
let _r_data = [];
data.forEach(ss=>{
  ss.list.forEach(item => {
    item.start = ss.start
  })
  _r_data.push(ss.list)
}
console.log(_r_data,'===_rdata')  // 二维数组
二维数组转一维数组(下面是两种方法)
第一种
let arr = _r_data.reduce(( acc, cur ) => {
  return acc.concat(cur)
}, []);
第二种
let arr = _r_data.flat();

 处理list,转换格式(看图更直观)

 

代码如下:

var obj = {},dest = [];
for(var i = 0; i < arr.length; i++){
  var ai = arr[i];
  if(!obj[ai.Name]){
    dest.push({
      name: ai.Name,
      data: [ai.count]
    });
        obj[ai.Name] = ai;
  }else{
    for(var j = 0; j < dest.length; j++){
      var dj = dest[j];
      if(dj.name == ai.Name){
        dj.data.push(ai.count);
        break;
      }
    }
  }
}

console.log(dest)   // 最终的list

有更简便的方法欢迎评论,学习、成长

posted @ 2022-11-28 17:54  Amyad  阅读(1186)  评论(0)    收藏  举报