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   Rxr 2016.01.15 10:10

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
数组去重,json数组去重
数组去重,接送数组去重1.借助json对象对数组进行去重,并计算重复的次数Array.prototype.unique = function (){ var key = {}; var narr = []; var len = this.length; for( var i=0; i<len; i++ ){ var t = this
js面试题之数组去重和快速排序
数组去重和快速排序这两个问题是在公司面试web前端常见的两个基础js问题,博主在阿里面试时就遇到过这个问题,现在我讲讲我知道的解决这两个问题的代码答案。 (ps:这两个题目都有好多种解决方案,大家可以先了解自己容易掌握的方法,然后再去网上找到最有效率的方法去了解其中的原理) 数组去重: Array.prototype.unique=function(){ var n=[];//一个
json数组去重的问题--indexOf
今天测试人员给小编提了一个需求,产品添加的时候实现追加的功能,想到了json数组合并的问题,然后就想到了要去重的问题,在此方法中使用到了js提供的indexOf方法解决,话不多说,直接上代码: var json = grid.getSelectedRows(); var jsonParent = Ext.util.JSON.decode(jsonParentStr); var tempA
js/JQUERY json数组除去重复对象
//json类型数组 classesArray //去掉重复选取的数据 for (var i = 0; i for (var j =i+1; j     if (classesArray[i].id == classesArray[j].id ) {//通过id属性进行匹配;     classesArray.splice(j, 1);//去除重复的对象;     }else {
js去除数组中重复的json
var array = [{"name":"123"},{"name":"123"},{"name":"456"}]; unique(array); function uniquetype(array){ var r = []; for(var i = 0, l = array.length; i for(var j = i + 1; j if (JSON.stringify(ar
ES6实现数组去重
ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Array.from方法可以将 Set 结构转为数组。 例如: const items = new Set([1, 2, 3, 4, 5]); const array = Array.from(items); 利用这些特点可以得出两种数组去重的方法: 方法一:利用展开运算符和Set成员的唯一...
将数组里存的json对象去重
昨天因为一个obj对象里有重复的数据要去重纠结了很长时间,在javascript高级程序设计里看见了一个方法跟大家分享一下filter();//  //判断o是否为数组 function isArray(o) {     return Object.prototype.toString.call(o) == '[object Array]'; } //将获取json 数据根据name进行筛选,将n...
json数组去重
前几天用了这个方法进行去重,效果还可以。   testHash = function () {  //去除数组重复     //var arr = ['a','b','c','a','b','d','b'];     //去除json数组里面重复     var arr=[{"cid":1,"county":"小河区"},     {"cid":1,"county":"小河区"},
java 实现数组去重(集合转换)
public static void main(String[] args) { int[] nums = { 5, 6, 6, 6, 8, 8, 7 }; List numList = new ArrayList(); for (int i : nums) numList.add(i); Set numSet = new HashSet(); numSet.
数组去除重复 json的继承和重新
历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中,具体实现如下,需要的朋友可以看看 例如:var student = [‘qiang','ming','tao','li','liang','you','qiang','tao']; 第一种思路是:遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元