js 对json分组
来源:互联网 发布:linux svn服务端 编辑:程序博客网 时间:2024/06/07 06:43
希望的是将下面的对象数组:
[ {"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);
阅读全文
0 0
- js 对json分组
- Js 对 Json 操作
- js对json 的操作
- js对json的操作
- JS 对json数据解析
- JS 对json数据解析
- js对象数组(JSON) 根据某个共同字段 分组
- js对象数组(JSON) 根据某个共同字段 分组
- 根据json里的某个key对json数据进行分组
- 使用js对JSON进行解析
- JS遍历Json字符串中键值对
- JS对JSON的操作总结 (转)
- JS对JSON的操作总结
- js对json对象的增加
- js对json的简单操作
- js对Json数组进行深复制
- JS对Json数据的处理
- JS对JSON的操作总结 (转)
- 使用U盘制作启动盘重装mac系统
- perl 5.10.0 安装
- tinyflow源码阅读-0
- 裸机安装ubuntu64位教程
- Chrome浏览器清除页面js文件缓存的方法
- js 对json分组
- Peeking into Apache Flink's Engine Room
- ssm+freemarker集成shiro修改
- coreseek添加mmseg分词
- jemeter对接口的post请求进行参数化进行压测
- vue的 计算属性(computed)、methods、watched三者区别
- 查看-颜色值HTML
- App 抓包工具二(Fiddler)
- 企业中docker的使用与安装