合并数组对象中的重复数组

今天项目中遇到一个问题,需要合并下面图片中数组中budget_id相同的对象,效果如图二,结果写了半天发现自己没写出来(?),参考了别人的代码之后终于做出来了(?)

合并数组对象中的重复数组_第1张图片


                        var data = jsonData.object[0].record;  //原始数据
                        //构造想要的数据结构
                        var data2 = []; 
                        data.forEach(function (t) {
                            var budgetData = {
                                budget_id: t.budget_id,
                                params: []
                            };
                            var paramsObj = {
                                param_code: t.param_code,
                                param_value: t.param_value
                            };
                            budgetData.params.push(paramsObj);
                            data2.push(budgetData);
                        });
                        //数组去重
                        var newData = [];
                        var newObj = {};
                        data2.forEach(function (t, i) {
                            if (!newObj[t.budget_id]) {
                                newData.push(t);
                                newObj[t.budget_id] = true;
                            }else{
                                newData.forEach(function (t2) {
                                    if(t2.budget_id == data2[i].budget_id){
                                        t2.params = t2.params.concat(data2[i].params)
                                    }
                                })
                            }
                        });

合并数组对象中的重复数组_第2张图片

参考链接:http://www.pianshen.com/article/933660520/

你可能感兴趣的:(合并数组对象中的重复数组)