一、静态数据

[
{"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": "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]){// 这里是根据ID为条件,进行分组
dest.push({
id: ai.id,
name: ai.name,
data: [ai]
});
map[ai.id] = ai;// 对象key的唯一性,放到对象中
}else{
for(var j = 0; j < dest.length; j++){
var dj = dest[j];
if(dj.id == ai.id){// 对象中存在,并且两个ID相等,添加并跳出循环
dj.data.push(ai);
break;
}
}
}
} console.log(dest);// 返会数组

最新文章

  1. React反模式 —— 如何不使用JSX地动态显示组件
  2. js正则匹配过滤 特殊字符
  3. 使用jQuery.form插件,实现完美的表单异步提交
  4. Ubuntu 12.4 Apache2 安装教程
  5. Mybatis中SqlMapper配置的扩展与应用(2)
  6. 设置图片自适应DIV大小
  7. Oracle session连接数和inactive的问题记录
  8. C#学习笔记3:提示“截断字符串或二进制数据”错误解决方法
  9. swiftTools
  10. _int64、long long 的区别
  11. VirtualBox 磁盘容量调整
  12. javascript 模块
  13. 将 notepad++ 添加到鼠标右键菜单 带图标
  14. 一千行 MySQL 详细学习笔记
  15. Maven json-lib依赖下载不下来解决方案
  16. python用unittest+HTMLTestRunner的框架测试并生成测试报告
  17. 深度学习原理与框架-Tensorboard可视化展示(代码) 1.tf.reuse_default_graph(进行结构图的重置) 2.tf.summary.FileWriter(writer实例化) 3. write.add_graph(graph的写入) 4. tf.summary.merge_all(将summary进行合并) 5.write.add_summary(将所有summary)
  18. Java线程池管理及分布式Hadoop调度框架搭建
  19. Window Mysql 5.7.18安装
  20. WebGL学习笔记七点一

热门文章

  1. 6.AOP配置与应用(xml的方式)
  2. Spring Cloud(五)断路器监控(Hystrix Dashboard)
  3. 怎么解决Win7电脑更新出现80072EE2代码的错误?
  4. R的数据结构--矩阵
  5. paperpass论文检测平台
  6. k8s部署普罗米修斯
  7. P3254——DP&amp;&amp;入门
  8. Chrome禁用隐藏www和m
  9. spring-boot-configuration-processor 是干啥用的
  10. kafka接口文档和kafka教程