var data = [{"id":"32b80b76-a81e-4545-8065-1e7c57180801","userId":"qy-uid","qcCode":"140403123001","packageInfo":"秋雨包裹一","tjTime":"2017-12-21 10:38:31.0","pdTime":"2017-12-21 11:05:08.0","shTime":"2017-12-29 10:17:06.0","addUserId":"qy-uid","pdUserId":"qy-uid","shUserId":"qy-uid","pdState":"00","shState":"00","packageState":"00","deleteFlg":"00","uname":"秋雨","uphone":"18151449650"},{"id":"9ee2e7f0-0f7a-44e2-b7cc-577d21eb1142","userId":"recorde-test-for-qy-do-not-delete","qcCode":"queen-qcCode003","packageInfo":"绿箭侠包裹三","tjTime":"2017-12-21 10:46:08.0","tijiaoTime":"2017-12-21 10:46:27.0","shTime":"2017-12-29 10:16:59.0","addUserId":"recorde-test-for-qy-do-not-delete","tjUserId":"recorde-test-for-qy-do-not-delete","shUserId":"qy-uid","tjState":"01","shState":"00","packageState":"00","deleteFlg":"00","uname":"奥利弗 ","uphone":"1666666666"},{"id":"a35b31b6-b974-4ca6-a4b6-28db3dae9814","userId":"recorde-test-for-qy-do-not-delete","qcCode":"queen-qcCode002","packageInfo":"绿箭侠包裹二","tjTime":"2017-12-21 10:45:44.0","tijiaoTime":"2017-12-21 10:46:27.0","pdTime":"2017-12-21 11:05:26.0","shTime":"2017-12-29 10:17:02.0","addUserId":"recorde-test-for-qy-do-not-delete","tjUserId":"recorde-test-for-qy-do-not-delete","pdUserId":"qy-uid","shUserId":"qy-uid","tjState":"01","pdState":"00","shState":"00","packageState":"00","deleteFlg":"00","uname":"奥利弗 ","uphone":"1666666666"},{"id":"d265b81f-4459-4986-bce7-8ef6f4ff3751","userId":"qy-uid","qcCode":"140403123002","packageInfo":"秋雨包裹二","tjTime":"2017-12-21 10:38:47.0","pdTime":"2017-12-21 11:05:13.0","addUserId":"qy-uid","pdUserId":"qy-uid","pdState":"00","packageState":"00","deleteFlg":"00","uname":"秋雨","uphone":"18151449650"},{"id":"f32fc473-4e2c-4357-b0bb-6fb44eb9eb74","userId":"recorde-test-for-qy-do-not-delete","qcCode":"queen-qcCode001","packageInfo":"绿箭侠包裹一","tjTime":"2017-12-21 10:45:27.0","tijiaoTime":"2017-12-21 10:46:27.0","pdTime":"2017-12-21 11:05:20.0","addUserId":"recorde-test-for-qy-do-not-delete","tjUserId":"recorde-test-for-qy-do-not-delete","pdUserId":"qy-uid","tjState":"01","pdState":"00","packageState":"00","deleteFlg":"00","uname":"奥利弗 ","uphone":"1666666666"},{"id":"f830543a-ae54-49ee-9646-b29e81c50d25","userId":"qy-uid","qcCode":"140403123003","packageInfo":"秋雨包裹三","tjTime":"2017-12-21 10:39:00.0","addUserId":"qy-uid","packageState":"00","deleteFlg":"00","uname":"秋雨","uphone":"18151449650"}];
var map = {}, //临时记录根据某字段分组的临时键值对变量
dest = []; //最终输出数组
for(var i = 0; i < data.length; i++){ //遍历list数据
var ai = data[i]; //ai代表list中的某一项
if(!map[ai.uname]){ //临时键值对变量中不存在此键
dest.push({ //将此数据以json对象格式放到数组中{key1:value1,key2:value2},key1是分组的字段,key2是list中的某一条数据
uname: ai.uname,
data: [ai]
});
map[ai.uname] = ai; //将未加入map的key放入
}else{ //临时键值对中有此键
for(var j = 0; j < dest.length; j++){ //遍历list
var dj = dest[j]; //结果数组中某一项数据
if(dj.uname == ai.uname){ //结果数据中此dest[key1]的值和该list[i].uname的值相等时
dj.data.push(ai); //把list[i]也放入该dest[key1].data中去
break;
}
}
}
}
console.info(dest);

js 按字段分组的更多相关文章

  1. js将json格式的list转换为按某个字段分组的map数组

    这几天做的微信公众号项目中,出现了需要将list分组显示的需求,解决方法如下 var data = [{ "id": "32b80b76-a81e-4545-8065-1 ...

  2. 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码

    2013-9-15 1.    CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...

  3. js对数组分组处理

    一.js数组分组 1.js对数据分组类似group by 源码如下: <!DOCTYPE html> <html lang="en"> <head&g ...

  4. SQL Server 按某一字段分组 取 最大 (小)值所在行的数据

    SQL Server 按某一字段分组 取 最大 (小)值所在行的数据 -- 按某一字段分组 取 最大 (小)值所在行的数据 -- (爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-10-23 ...

  5. .Net Linq与Lambda表达式中GroupBy以多个字段分组

    一.引入 基本上熟悉C#语言的没有不知道Lambda表达式的,其对于数据的处理真的是太方便了.其中分组处理的GroupBy方法在List中的使用非常广泛.正式近期一个功能需求中又遇到了,而且是需要Gr ...

  6. js判断字段是否为空 isNull

    js判断字段是否为空 isNull   //在js中if条件为null/undefined/0/NaN/""表达式时,统统被解释为false,此外均为true .//为空判断函数f ...

  7. JS正则表达式获取分组内容实例

    JS正则表达式获取分组内容. 支持多次匹配的方式: var testStr = "now test001 test002"; var re = /test(\d+)/ig; var ...

  8. mysql按某一字段分组取最大(小)值所在行的数据

    mysql按某一字段分组取最大(小)值所在行的数据   mysql技巧--按某一字段分组取最大(小)值所在行的数据,这是mysql数据库程序员经常用到的在处理一些报表数据时候可以活用!那么猎微网将总结 ...

  9. mysql根据某个字段分组根据更新时间获取最新的记录

    我现在有一种统计表,要根据一个字段分组然后根据更新时间,每个分组获取最新的一条记录.命名感觉挺简单的一个需求,然而没什么思路,当然是问度娘了. 度娘的答案很统一,然而都不管用,都是报错的,不知道是不是 ...

随机推荐

  1. Adapter Class/Object(适配器)

    意图: 将一个类的接口转换成客户希望的另外一个接口.Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适用性: 你想使用一个已经存在的类,而它的接口不符合你的需求. 你想 ...

  2. [翻译]PyMongo官方文档

    PyMongo官方文档翻译 周煦辰 2016-06-30 这是本人翻译的PyMongo官方文档.现在网上分(抄)享(袭)的PyMongo博客文章很多,一方面这些文章本就是抄袭的,谈不上什么格式美观,另 ...

  3. Ubuntu上识别不到安卓设备或者显示出“????”,提示No Permission

    一:Ubuntu上识别不到安卓设备 1.lsusb找到设备的Vendor ID 2.cd ~/.android 3.vim adb_usb.ini 4.把设备的VendorID添加进来,如设备ID为2 ...

  4. bzoj-4565-区间dp+状压

    4565: [Haoi2016]字符合并 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 542  Solved: 253[Submit][Status ...

  5. HDU-5700-贪心/stl

    区间交 Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submiss ...

  6. HDU 4522 (恶心建图)

    湫湫系列故事——过年回家 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  7. iOS UI-线程(NSThread)及其安全隐患与通信

    一.基本使用 1.多线程的优缺点 多线程的优点 能适当提高程序的执行效率 能适当提高资源利用率(CPU.内存利用率) 多线程的缺点 开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占 ...

  8. 2019年微信小程序1月TOP100榜单

  9. WebGL编程指南案例解析之绘制四边形

    //案例4,绘制矩形,和三角形类似,但是注意因为一个矩形有4个顶点,按照两个三角形绘制矩形的话,顶点顺序要注意 var vShader = ` attribute vec4 a_Position; v ...

  10. 新书《Cocos2dx 3.x 3D图形学渲染技术讲解》问世

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...