Combining JavaScript objects in an array with same key value

后端 未结 4 862
太阳男子
太阳男子 2020-12-19 18:21

I have been trying to combine objects inside an array with same id-value. The array that I have is like this:

[
{\"id\" : \"abcd\",\"val1\" : 1,\"val2\": 1,          


        
4条回答
  •  鱼传尺愫
    2020-12-19 18:58

    The standard way to do that is to use an object as map (here b) :

    var b = {}, arr = [];
    for (var id in a) {
      var oa = a[id], ob = b[oa.id];
      if (!ob) arr.push(ob = b[oa.id] = {}); 
      for (var k in oa) ob[k] = k==='id' ? oa.id : (ob[k]||0)+oa[k];
    }
    console.log(arr)
    

提交回复
热议问题