1.去重

for(var q = 0;q<jsonArr.length;q++){
 
for(var e=0;e<jsonArr[q].data.length;e++){
 
var matchCode = jsonArr[q].data[e];
var chua = jsonArr[q].jsonObj;
var isExist = false;
var isC = false;
//去重多少场次
for(var m = 0; m < an.length; m ++){
 
if(jsonArr[q].data[e].mhcode == an[m].mhcode && jsonArr[q].data[e].jackpot==an[m].jackpot &&
jsonArr[q].data[e].option == an[m].option){
isExist = true;
break;
}
}
//去重几串几
for(var r=0;r<jso.length;r++){
if(jsonArr[q].jsonObj.e0 == jso[r].e0 && jsonArr[q].jsonObj.e1 == jso[r].e1){
 
isC = true;
break;
}
}
if(!isExist){
an.push(matchCode);
}
if(!isC){
jso.push(chua);
}
 
}
}
 
2合并
var s = new Array();
for(var e=0;e<an.length;e++){
var matchCode = an[e];
 
var isExist = false;
for(var m = 0; m < s.length; m ++){
if(matchCode.mhcode == s[m].mhcode && matchCode.jackpot==s[m].jackpot ){
s[m].option +=","+matchCode.option;
isExist = true;
break;
}
}
if(!isExist){
s.push(matchCode);
 
}
}
3.分组
var map = {},
dest = [];
 
for(var i = 0; i < s.length; i++){
var ai = s[i];
 
if(!map[ai.mhcode]){
dest.push({
mhcode: ai.mhcode,
jk:ai.jackpot,
 
data: [ai]
});
map[ai.mhcode] = ai;
}else{
for(var j = 0; j < dest.length; j++){
var dj = dest[j];
if(dj.mhcode == ai.mhcode ){
dj.data.push(ai);
break;
}
}
}
}

js去重合并的更多相关文章

  1. CSS 和 JS 文件合并工具

    写 CSS 和 JavaScript 的时候, 我们会遇到一个两难的局面: 要么将代码写在一个大文件, 要么将代码分成多个文件. 前者导致文件难以管理, 代码复用性差, 后者则因为需要在载入多个文件令 ...

  2. js文件合并,压缩,缓存,延迟加载

    做web前段也有一段时间了,对于web中js文件的加载有些体会想跟大家一起分享一下. 1.首先说说js文件的合并和压缩吧 为了便于集中式管理js的合并和压缩我们创建一个Js.ashx文件来专门处理合并 ...

  3. gulp 之一 安装及简单CSS,JS文件合并压缩

    最近研究了一下gulp构建工具,发现使用起来比grunt顺手一些.(个人感受),以下是grunt和gulp构建方式和原理: grunt 基于文件方式构建,会把文件先写到临时目录下,然后进行读文件,修改 ...

  4. vue-element-table-js去重合并单元格解析【实战需求】

    有数据如下: { '2019-01-23': [ { 'channel': 'zp', 'listScanListNum': 24, 'listParseOkNum': 0, 'listPersonM ...

  5. 分享知识-快乐自己:List 集合去重合并 , 多种方法演示

    最近空闲时间去面试 , 被问了一个问题list如何去重合并 , 想了半天只想到了最繁琐的循环方法 , 顿觉丢人. 整理一下资料供大家参考: List<String> a = new Arr ...

  6. 查看权限详情 将部门大类单据整合,将子类单据id去重合并

    /** * 查看权限详情 * @param id 部门id * @return */ @GetMapping("getListInfo") public R getDetail(S ...

  7. 对两个有序数组重新去重合并排序js实现

    这里主要是要利用两个数组有序这个条件,所以只需两个指针分别指向两个数组,当其中一个小于另外一个就移动该指针,反之则移动另外一个指针,如果相等则均向后移动. 结束条件是,当任意一个数组的指针移到末尾则跳 ...

  8. 如何在Node.js中合并两个复杂对象

    通常情况下,在Node.js中我们可以通过underscore的extend或者lodash的merge来合并两个对象,但是对于像下面这种复杂的对象,要如何来应对呢? 例如我有以下两个object: ...

  9. 前端js文件合并三种方式

    最近在思考前端js文件该如何合并,当然不包括不能合并文件,而是我们能合并的文件,想了想应该也只有三种方式. 三个方式如下: 1. 一个大文件,所有js合并成一个大文件,所有页面都引用它. 2. 各个页 ...

随机推荐

  1. C/C++调试分析工具

    一.静态分析工具 cppcheck cppcheck主要用于对C/C++源代码进行分析检查的一个开源工具,可以用来检测未使用的变量.越界访问.内存泄漏等问题. 使用方法 cppcheck --enab ...

  2. [记录]Shell中的getopts和getopt用法

    Shell中的getopts和getopt用法 1.getopts getopts(shell内置命令)不能直接处理长的选项(如:--prefix=/home等),getopts有两个参数,第一个参数 ...

  3. Mybatis学习之道(一)

    本例子为采用的mysql+maven+mybatis构建. 初步学习mybatis: mybatis为一个半自动框架,相对于hibernate来说他更加轻巧,学习成本更低. 1.新建一个maven工程 ...

  4. shell脚本比较字符串相等

    昨天在定位一个bug的时候,需要些shell脚本,用到了字符串的比较,出了一个小问题,就搜索总结了一下. 第一种方法:-eq 对比字符串是否相等,我首先想到的就是 -eq,然而打印的结果不正确.各种e ...

  5. OSI网络模型

    OSI中的层 功能 TCP/IP协议族 应用层         文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层         数 ...

  6. java字符串以及字符类型基础

    介绍一下java字符集和字符的编码方式, 首先要区分一下字符集和字符编码.所谓的字符集 类似于unicode,GB2312,GBK,ASCII等等.因为一开始只有26个英文字母需要 编一下号.所有用下 ...

  7. LeetCode第七天

    ==数组 Medium== 40.(162)Find Peak Element JAVA //斜率思想,二分法 class Solution { public int findPeakElement( ...

  8. mysql 学习心得2

    1tinyint small~ medium~ int big~ float double dec(M,D)定点数 取值范围由md确定 bit(M)位类型 bit(1) bit(64). 2zerof ...

  9. POJ - 1321 dfs [kuangbin带你飞]专题一

    枚举行和列即可,当前已经放下cnt个棋子,当前已经搜索到第r行,如果 n - r + cnt  < k 直接退出,因为后面无法放下剩下的棋子. AC代码 #include<cstdio&g ...

  10. openstack-ocata-仪表盘服务6

    Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务.这个部署示例使用的是 Apache Web 服务器.一. 安装和配置 接下来 ...