javascript合并相同元素的数组

varlist=[{"id":1,"num":1,"name":"西瓜"},{"id":1,"num":3,"name":"西瓜"},{"id":1,"num":5,"n... var list = [{"id":1,"num":1,"name":"西瓜"},{"id":1,"num":3,"name":"西瓜"},{"id":1,"num":5,"name":"西瓜"}];
如何根据id相同,然后自动合并成同一个数组里面,并计算num的总和,最后输出:
var newList = [{"id":1,"num":9,"name":"西瓜"}];
展开
 我来答
帐号已注销
推荐于2016-08-30 · TA获得超过4630个赞
知道大有可为答主
回答量:1345
采纳率:50%
帮助的人:1636万
展开全部
function union(arr){
    arr = arr || [];
    var tmp = {};
    for(var i = 0, len = arr.length; i < len; i++){
        var obj = arr[i];        
        if(obj.id in tmp){
            tmp[obj.id].num += obj.num;
        }else{
            tmp[obj.id] = obj;
        }
    }
    
    var result = [];
    for(var key in tmp){
        result.push(tmp[key]);
    }
    
    return result;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式