获取数组中连续相同的元素
这里分享一个处理连续数据的两个办法,记录一下,说不定自己以后还会遇到。
(1)纯数组类型
如代码,将里面连续相同的数字找出来
oldArr = [1,1,,2,3,3,3,7,8,9,15,17,17,18,19,19,19];function fn(arr){var result = [],i = 0;result[i] = [arr[0]];arr.reduce(function(prev, cur){cur === prev ? result[i].push(cur) : result[++i] = [cur];return cur;});return result;
}fn(oldArr);
执行结果:
(2)数组对象类型
将数组对象中连续cupName相同的数据找出来
var newdata = [
{"duration": 48,
"dataSource": 3,
"cupName": "对战平台测试组",
"roundRemark": ""
},
{"duration": 27,
"dataSource": 3,
"cupName": "对战平台测试组",
"roundRemark": ""
},
{"duration": 35,
"dataSource": 3,
"cupName": null,
"roundRemark": null
},
{"duration": 25,
"dataSource": 1,
"cupName": null,
"roundRemark": null
}
];function fn2(arr){var result = [],i = 0;result[i] = [arr[0]];arr.reduce(function(prev, cur){cur.cupName === prev.cupName ? result[i].push(cur) : result[++i] = [cur];return cur;});return result;
}fn2(newdata);
执行结果:
(3)实用场景
那有什么实用场景呢?
如下图数据,这里呢,需要给每个cupName 相同,且dataSource =3的连续数据,头部加一个logo,底部和其他数据分开。
思路:
1、将连续的数据找出来,转换成一个二维数组
fns2(arr) {var result = [],i = 0;result[i] = [arr[0]];arr.reduce(function(prev, cur) {cur.cupName === prev.cupName ? result[i].push(cur) : (result[++i] = [cur]);return cur;});return result;}
想要得到的结果:
[[{"duration": 48,"dataSource": 3,"cupName": "对战平台测试组","roundRemark": ""},{"duration": 27,"dataSource": 3,"cupName": "对战平台测试组","roundRemark": ""}],[{"duration": 35,"dataSource": 3,"cupName": null,"roundRemark": null},{"duration": 25,"dataSource": 1,"cupName": null,"roundRemark": null}]
]
2、 为连续数据的头和尾添加标志(头是添加logo,尾是隔开和其他数据)
addHeadAndTail(data) {data.forEach((v) => {//只有一个元素if (v.length === 1) {if (v[0].cupName && v[0].dataSource === 3) {v[0].head = true;v[0].end = true;}//包含多个元素} else {v.forEach((k) => {if (k.cupName && k.dataSource === 3) {v[0].head = true;v[v.length - 1].end = true;}});}});return data;
}
想要得到的结果:
[[{"head ":true,"duration": 48,"dataSource": 3,"cupName": "对战平台测试组","roundRemark": "",},{"end ":true,"duration": 27,"dataSource": 3,"cupName": "对战平台测试组","roundRemark": ""}],[{"duration": 35,"dataSource": 3,"cupName": null,"roundRemark": null},{"duration": 25,"dataSource": 1,"cupName": null,"roundRemark": null}]
]
3、 将数据在展开为原来的形式
let data2 = this.addHeadAndTail(data1);let data3 = [];
data2.forEach((v) => {data3.push(...v);});
想要得到的结果:
[{"head ":true,"duration": 48,"dataSource": 3,"cupName": "对战平台测试组","roundRemark": "",},{"end ":true,"duration": 27,"dataSource": 3,"cupName": "对战平台测试组","roundRemark": ""},{"duration": 35,"dataSource": 3,"cupName": null,"roundRemark": null},{"duration": 25,"dataSource": 1,"cupName": null,"roundRemark": null}
]
获取数组中连续相同的元素相关推荐
- Matlab: 获取数组中不重复的元素,可以使用unique(arr)函数即可
matlab中可以使用 a = unique(train_target) python中可以使用 a = set(train_target) 不积跬步,无以至千里;不积小流,无以成江海 跟着教程学,是 ...
- python获取数组中最多的元素
获取数组中数量最多的元素,也就是最频繁的那个元素,方法有很多,下面是3种最简单的: 1.用max函数 sample = [1,2,3,3,3,4,5,5] max(set(sample), key=s ...
- php 数组重复最多,PHP获取数组中重复最多元素的简单示例
这篇文章主要为大家详细介绍了PHP获取数组中重复最多元素的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧! 本文实例讲述了PHP获取数组中重复最 ...
- Java创建数组的三种方式 (以及length方法是否能获取数组中元素的个数)
Java创建数组的三种方法 import java.util.Arrays; public class Sum { public static void main(String[] args){ in ...
- python取数组最后一个元素_Python Json。只获取json数组中的最后一个元素
我刚开始尝试python,现在我有点左右为难.在 我试图从一个json文档打印,而我只得到数组中的最后一个元素.在[{ "FullMeasure": "1/2 cup&q ...
- 获取数组中元素值为偶数的累加和与元素值为奇数的累加和,并计算他们之间的差值
/*** 1.获取数组中元素值为偶数的累加和与元素值为奇数的累加和,并计算他们之间的差值* 1.定义int getNum(int[] arr)静态方法,该方法要求完成* 1.1 获取指定数组arr中元 ...
- scala 获取数组中元素_从Scala中的元素列表中获取随机元素
scala 获取数组中元素 We can access a random element from a list in Scala using the random variable. To use ...
- 分答项目_知识点:如何获取jquery选择器生成的input元素数组中的每个input元素的值?
我最初的想法: (1)jquery选择器获取后将dom元素放到attachnew中了,在遍历数组中可以attachnew[i].value属性即可获取input元素的值: (2)此处用的attachn ...
- js使用slice方法获取数组中某段元素
js使用slice方法获取数组中某段元素 slice() 方法可从已有的数组中返回选定的元素. 语法:arrayObj.slice(start, [end]) 参数: start:必需.规定从何处开始 ...
最新文章
- C++ list插入元素源码分析及过程图
- linux read命令用法
- Druid 在spring中的配置
- 九、二手信息站点后台完成 (IVX 快速开发教程)
- 五、scrapy爬虫框架——logging 模块的使用
- [PHP] - Laravel - CSRF token禁用方法与排除验证csrf_token的url设置
- php 检查txt中全角大写字母的个数
- 聚类算法论文研读 record
- AIDA64 5.92.4300 序列号
- 计算机人工智能领域英文文献,人工智能英文文献译文.doc
- jsp案例分析(二)-聊天室-2-逆向建模
- 【小程序源码】游戏助手王者荣耀战力查询,游戏扫码登录器等
- Springcloud整合Eureka报错[TransportException: Cannot execute request on any known server.]一站式解决
- 支付宝赚赏金的多种玩法(引流+变现日入200+)
- 67键键盘如何输出`和~符号(一百五十一)
- word文档怎么删除多余的空白页?
- 中国PI膜行业市场需求趋势分析及十四五前景预测报告2021-2027年版
- 路由器重温——ADSL/VDSL接口配置管理
- 多维数据格式mdd结构与计算机配套系统,多维数据分析系统
- GHOSTXPSP3电脑爱好者V9.9装机版
热门文章
- value toDF is not a member of org.apache.spark.rdd.RDD[People]
- d3.js中的选择元素
- RecycleView 与 Elevation
- spring 配置定时任务
- webapp 中为span元素赋值
- 可能 delphi7 下稳定的最后一版本 GDIPLUS
- CCNA实验(9) -- Frame Relay
- 巧妙的查看FORM中的 LOV查询语句
- 构造器和析构器 - C++快速入门15
- blog被封了文章全被删除了,郁闷