javascript 数据分组
2024-10-06 19:59:46
一、静态数据
[
{"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);// 返会数组
最新文章
- React反模式 —— 如何不使用JSX地动态显示组件
- js正则匹配过滤 特殊字符
- 使用jQuery.form插件,实现完美的表单异步提交
- Ubuntu 12.4 Apache2 安装教程
- Mybatis中SqlMapper配置的扩展与应用(2)
- 设置图片自适应DIV大小
- Oracle session连接数和inactive的问题记录
- C#学习笔记3:提示“截断字符串或二进制数据”错误解决方法
- swiftTools
- _int64、long long 的区别
- VirtualBox 磁盘容量调整
- javascript 模块
- 将 notepad++ 添加到鼠标右键菜单 带图标
- 一千行 MySQL 详细学习笔记
- Maven json-lib依赖下载不下来解决方案
- python用unittest+HTMLTestRunner的框架测试并生成测试报告
- 深度学习原理与框架-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)
- Java线程池管理及分布式Hadoop调度框架搭建
- Window Mysql 5.7.18安装
- WebGL学习笔记七点一