2 qq 32763435 qq_32763435 于 2016.01.15 09:33 提问

关于JSON 和数组 去重 的问题!

举个列子:
从数据库中返回多段JSON字符串如下:
0:{
name:"ZSZS"
money:"100"
...
}1:{
name:"LSLS"
money:"120"
...
}
2:{
name:"LSLS"
money:"120"
...
}
3:{
name:"ZSZS"
money:"200"
...
}
.............
然后我想将 name 相同的合并在一起并让他们的money累加。
变成一个新的数组 或者JSON
即:name=ZSZS 的 money=300
name =LSLS 的 money =240

有没有好的办法??

5个回答

showbo
showbo   Ds   Rxr 2016.01.15 09:49
已采纳

遍历下


    var data = {
        0: {
            name: "ZSZS",
            money: "100"
        }, 1: {
            name: "LSLS",
            money: "120"
        },
        2: {
            name: "LSLS",
            money: "120"
        },
        3: {
            name: "ZSZS",
            money: "200"
        }
    };
    var rst = {},namek;
    for (k in data) {
        namek = data[k].name;
        if (rst[namek]) {
            rst[namek].money += parseFloat(data[k].money);
        }
        else {
            rst[namek] = data[k];
            rst[namek].money = parseFloat(rst[namek].money);
        }
    }
    console.log(rst);
qq_32763435
qq_32763435 回复qq_32763435: 最好写成map形式。相同name下的money 做累加。然后在后面遍历用name.money调用。
接近 2 年之前 回复
qq_32763435
qq_32763435 因为底层返回的JSON字符串就是这样的。
接近 2 年之前 回复
showbo
showbo 回复qq_32763435: 键名称就是你name,比你用数字做键好多了吧。。干嘛要和原来的一样。
接近 2 年之前 回复
qq_32763435
qq_32763435 有没有像 map 里 键值对 一样的 方法。这样方便调用啊
接近 2 年之前 回复
CSDNXIAOD
CSDNXIAOD   2016.01.15 09:35

json数组去重
数组去重问题
利用JSON-数组去重
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

yny1158311135
yny1158311135   2016.01.15 09:53

找出来的你就遍历一下,不就可以了么

rui888
rui888   Ds   Rxr 2016.01.15 09:57
enpterexpress
enpterexpress   2016.01.15 10:10

这不是重复啊,这是统计啊
什么叫设计,就是什么该干什么的事情,事半功倍的效果

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!