给一个数组:

  1. [{ GroupMark: "", GroupName: "hao", SendTime: '123', SendContent: "1ha" },
  2. { GroupMark: "1", GroupName: "hao", SendTime: '123', SendContent: "2ha" },
  3. { GroupMark: "1", GroupName: "hao", SendTime: '123', SendContent: "3ha" },
  4. { GroupMark: "22", GroupName: "hao", SendTime: '123', SendContent: "4ha" },
  5. { GroupMark: "3", GroupName: "hao", SendTime: '123', SendContent: "6ha" },
  6. { GroupMark: "22", GroupName: "hao", SendTime: '123', SendContent: "5ha" }]

目标

  1. [{"GroupMark":"","GroupName":"hao","SendTime":"123","SendContent":["1ha"]},
    {"GroupMark":"1","GroupName":"hao","SendTime":"123","SendContent":["2ha","3ha"]},
    {"GroupMark":"22","GroupName":"hao","SendTime":"123","SendContent":["4ha","5ha"]},
    {"GroupMark":"3","GroupName":"hao","SendTime":"123","SendContent":["6ha"]}]
  1. //参照数组去重的
    var arr =[{ GroupMark: "", GroupName: "hao", SendTime: '123', SendContent: "1ha" },
  2. { GroupMark: "1", GroupName: "hao", SendTime: '123', SendContent: "2ha" },
  3. { GroupMark: "1", GroupName: "hao", SendTime: '123', SendContent: "3ha" },
  4. { GroupMark: "22", GroupName: "hao", SendTime: '123', SendContent: "4ha" },
  5. { GroupMark: "3", GroupName: "hao", SendTime: '123', SendContent: "6ha" },
  6. { GroupMark: "22", GroupName: "hao", SendTime: '123', SendContent: "5ha" }]
  7. var tempObj ={}
  8. var resArr = []
  9. for(let [index,item] of arr.entries() ){
  10. let {GroupMark,GroupName,SendContent} = item
  11. let keyStr = GroupMark+'&'+GroupName
  12. if(tempObj[keyStr]){
  13. let tempSendContent= tempObj[keyStr].SendContent
  14. tempObj[keyStr].SendContent=[...tempSendContent,SendContent]
  15. }else{
  16. tempObj[keyStr]={
  17. ...item,
  18. SendContent:[SendContent]
  19. }
  20. }
  21. }
  22. for (let item in tempObj) {
  23. resArr.push(tempObj[item])
  24. }
  25. console.log(resArr)

js排序--一道js数据结构题的更多相关文章

  1. 一道js题

    <script> var a = 5; function test(){ this.a = 10; a = 15 this.func = function(){ var a = 20 ; ...

  2. 排序图解:js排序算法实现

    之前写过js实现数组去重, 今天继续研究数组: 排序算法实现. 排序是数据结构主要内容,并不限于语言主要在于思想:大学曾经用C语言研究过一段时间的排序实现, 这段时间有空用JS再将排序知识点熟悉一遍. ...

  3. 用js来实现那些数据结构及算法—目录

    首先,有一点要声明,下面所有文章的所有内容的代码,都不是我一个人独立完成的,它们来自于一本叫做<学习JavaScript数据结构和算法>(第二版),人民邮电出版社出版的这本书.github ...

  4. 那晚征服的一道js经典的面试题

    今天朋友共享了一道js中经典的面试题,需求是这样的 给定你任意一个字符串,让你写出一个算法,求算出该字符串中出现次数最多的一个字符,并将其结果输出 刚拿到这道题的第一感觉便是定义一个count计时器, ...

  5. 利用js排序html表格

    在web前端开发中会遇到排序等功能,当然也可以用服务器端来排序,今天我做一个笔记,怎么用js来实现这些复杂的功能呢. 在学习这个之前一定得用html dom jquery 的知识,要不没有办法看明白的 ...

  6. 用js来实现那些数据结构—目录

    首先,有一点要声明,下面所有文章的所有内容的代码,都不是我一个人独立完成的,它们来自于一本叫做<学习JavaScript数据结构和算法>(第二版),人民邮电出版社出版的这本书.github ...

  7. QDUOJ 一道简单的数据结构题 栈的使用(括号配对)

    一道简单的数据结构题 发布时间: 2017年6月3日 18:46   最后更新: 2017年6月3日 18:51   时间限制: 1000ms   内存限制: 128M 描述 如果插入“+”和“1”到 ...

  8. JS排序之快速排序

    JS排序之快速排序 一个数组中的数据,选择索引为(2/数组长度)的那个数据作为基数,数组中的其他数据与它对比,比它数值小的放在做数组,比它数值大的放在右数组,最后组合 左数组+基数+右数组,其中,左数 ...

  9. new与属性访问的顺序,从一道JS面试题说起

    这段时间一直在研究设计模式,在看工厂模式的时候,看到一段代码 VehicleFactory.prototype.createVehicle = function ( options ) { if( o ...

随机推荐

  1. [转帖]公钥基础设施(PKI)/CFSSL证书生成工具的使用

    公钥基础设施(PKI)/CFSSL证书生成工具的使用 weilovepan520关注1人评论84344人阅读2018-05-26 12:22:20 https://blog.51cto.com/liu ...

  2. [转帖]快速部署Telegraf & Influxdb

    快速部署Telegraf & Influxdb https://www.cnblogs.com/deykenlee/p/7565647.html 作者的blog 比较早 后来 influxdb ...

  3. Redis(1.3)Redis的基本特性(事务、多数据库)

    [1]两大特性 (1)多数据库 1个redis实例 可以有16个数据库,默认下标为0~15,默认连接到的是 0 下标的数据库. (2)事务 [2]多数据库 [2.1]概念 1个redis实例 可以有1 ...

  4. 2019年5月份最热门的JavaScript开源项目

    五一假期后工作的第一天,不知道你们调整好状态没有呢? 1-libpku https://github.com/lib-pku/libpku     Star 15820 该项目是由一名北大在读大学生整 ...

  5. python 下安装pymysql应用

    前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持3.x版本. 本文测试python版本:2.7.11. ...

  6. java水题集

    POJ - 1220 进制转换 import java.io.*; import java.util.*; import java.math.*; public class Main { public ...

  7. TCP的组包、半包、粘包与分包

    一.概念 1)组包.简单的说就是tcp协议把过大的数据包分成了几个小的包传输,接收方要把同一组的数据包重新组合成一个完整的数据包. 2)半包.指接受方没有接受到一个完整的包,只接受了部分,这种情况主要 ...

  8. opencv3.3 CUDA 初学实例

    //swap.cu #include "cuda_runtime.h" #include "device_launch_parameters.h" #inclu ...

  9. MySQL学习笔记:count(1)、count(*)、count(字段)的区别

    关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT. 但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐.不信的话请 ...

  10. Git——文件初始化及设置签名

    1. 本地库初始化 命令: git init 效果: