怎么实现数组内对象code值相同的情况下poll值进行累加 财富值58

2016-10-25 13:22发布

var arr = [

    {"code": "a", "poll": 7},     {"code": "b", "poll": 2},     {"code": "c", "poll": 18},     {"code": "a", "poll": 5},     {"code": "c", "poll": 12},     {"code": "a", "poll": 1} ]; 

var arr2 = [

{"code": "a", "poll": 13}, {"code": "b", "poll": 2}, {"code": "c", "poll": 30}

];
如何实现arr → 到arr1 的转变,且code值 不仅仅为 a b c 也可能为 adsdsd dsdsd a223 任意值 如何实现 类似转变

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答

你这是js吧

第一个例子的思路是很直觉的解决,用for语句寻遍整个原先的阵列(arr),另外用个新的阵列装找到的每个物件,如果发现在新阵列(arr2)中的物件中的code属性有相同的,就不新增,而是作poll属性的相加:

给你来一个不考虑性能的

我写了个解决的例子,参考一下。不过我要先讲一下,你的问题中就已经有错误的语法。物件字面定义不是这样用的,这像是JSON格式:

第二个例子的思路,是先不管新阵列长什么样,反正这里主要看的是物件中的code属性,相同的的code属性的值,要把对应的poll属性相加就是。所以先作这件事,最后再来组合新阵列。

再来个一次遍历的,以空间换时间。

这如果是JSON字串,要先解析为物件才是对的作法。

会有第二种的思路是在js中有一些物件的内建运算符或方法,可以用得上,看起来代码行数会少些。稍微测了一下大数据(阵列中有100万与1000万笔物件,code只有10种情况时),第一种比较快,大约是第二种的3-4倍快,实际还是要看应用。

一周热门 更多>