博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js对象数组(JSON) 根据某个共同字段 分组
阅读量:7014 次
发布时间:2019-06-28

本文共 1384 字,大约阅读时间需要 4 分钟。

希望的是将下面的对象数组:

[    {"id":"1001","name":"值1","value":"111"}, {"id":"1001","name":"值1","value":"11111"}, {"id":"1002","name":"值2","value":"25462"}, {"id":"1002","name":"值2","value":"23131"}, {"id":"1002","name":"值2","value":"2315432"}, {"id":"1003","name":"值3","value":"333333"} ]

根据相同id字段分组,转换成下面这种形式:

[    {        "id": "1001",        "name": "值1", "data": [ {"id": "1001", "name": "值1", "value": "111"}, { "id": "1001", "name": "值1", "value": "11111"} ] }, { "id": "1002", "name": "值2", "data": [ { "id": "1002", "name": "值2", "value": "25462" }, { "id": "1002", "name": "值2", "value": "23131"}, {"id": "1002", "name": "值2","value": "2315432" } ] }, { "id": "1003", "name": "值3", "data": [ {"id": "1003", "name": "值3", "value": "333333" } ] } ]

做法:

var arr = [    {
"id":"1001","name":"值1","value":"111"}, { "id":"1001","name":"值1","value":"11111"}, { "id":"1002","name":"值2","value":"25462"}, { "id":"1002","name":"值2","value":"23131"}, { "id":"1002","name":"值2","value":"2315432"}, { "id":"1003","name":"值3","value":"333333"} ]; var map = {}, dest = []; for(var i = 0; i < arr.length; i++){ var ai = arr[i]; if(!map[ai.id]){ dest.push({ id: ai.id, name: ai.name, data: [ai] }); map[ai.id] = ai; }else{ for(var j = 0; j < dest.length; j++){ var dj = dest[j]; if(dj.id == ai.id){ dj.data.push(ai); break; } } } } console.log(dest);

转载于:https://www.cnblogs.com/vali/p/7839324.html

你可能感兴趣的文章
keil 编译后 flash 和 ram 占用情况
查看>>
java Jsoup爬取静态网站
查看>>
css选择器
查看>>
emacs使用http代理打开
查看>>
IOException: Sharing violation on path *****
查看>>
redhat python笔试题
查看>>
Silverlig“.NET研究”ht 2.5D RPG游戏技巧与特效处理:(三)动态光影
查看>>
字符串
查看>>
Vue 项目中使用less
查看>>
2018-2019-1 20165303 《信息安全系统设计基础》第七周学习总结
查看>>
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)
查看>>
如何將CMOS影像以RGB16的方式存入SDRAM? (SOC) (DE2-70) (TRDB-D5M) (TRDB-LTM)
查看>>
中国程序员容易发音错误的单词
查看>>
Android通知的基本用法
查看>>
window平台如何搭建Mysql集群
查看>>
退出unity运行
查看>>
linux -- ubuntu dash bash
查看>>
day35-1 类的三大特性---继承,以及类的派生
查看>>
以前常用的攻击软件源代码
查看>>
MVC3 上传文件
查看>>