js合并相同值的数组,生成一组新的数组

得到的数据:

var data = [
{"year":"2018-03-03","qidong":"17:01:37","shicha":"25","jieshu":"17:02:03"},
{"year":"2018-03-03","qidong":"17:01:06","shicha":"14","jieshu":"17:01:20"},
{"year":"2018-03-04","qidong":"17:00:41","shicha":"11","jieshu":"17:00:52"},
{"year":"2018-03-04","qidong":"17:00:06","shicha":"7","jieshu":"17:00:13"}
];

请教如何把数组生成新的类型数组? 如下

var data = [
{"year":"2018-03-03","qidong":"17:01:37,17:01:06","shicha":"25,14","jieshu":"17:02:03,17:01:20"},
{"year":"2018-03-04","qidong":"17:00:41,17:00:06","shicha":"11,7","jieshu":"17:00:52,17:00:13"},
];
阅读 3.2k
2 个回答
var data = [
        {"year":"2018-03-03","qidong":"17:01:37","shicha":"25","jieshu":"17:02:03"},
        {"year":"2018-03-03","qidong":"17:01:06","shicha":"14","jieshu":"17:01:20"},
        {"year":"2018-03-04","qidong":"17:00:41","shicha":"11","jieshu":"17:00:52"},
        {"year":"2018-03-04","qidong":"17:00:06","shicha":"7","jieshu":"17:00:13"}
    ];
    var _=data.reduce(function(a,b){
        var year=b.year;
        if(!a[year]){
            a[year]={
                qidong:[],
                shicha:[],
                jieshu:[]
            }
        }
        a[year].qidong.push(b.qidong);
        a[year].shicha.push(b.shicha);
        a[year].jieshu.push(b.jieshu);
        return a;
    },{});
    _=Object.keys(_).map(function(item){
        return{
            year: item,
            qidong: _[item].qidong.join(','),
            shicha: _[item].shicha.join(','),
            jieshu: _[item].jieshu.join(','),
        };
    })
    console.log(_);

function fn(data,type){
let hash=[],arr=[];
data.map((item)=>{

if(hash[item[type]]){
   arr.push(item)
}

})
return arr;
}
console.log(fn(data,'year'))

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