当前位置:首页 > 技术分析 > 正文内容

数组处理去重+排序(数组的去重处理)

ruisui883个月前 (02-03)技术分析18

多方位熟悉数组处理方法

已知如下数组,编写一个程序将数组扁平化去并除其中重复部分数据,最终得 到一个升序且不重复的数组 var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];

解答

1.先去扁平化

2.数组去重

3.排序

第一步拉平数组

// 扁平化

let flatArr = arr.flat(4);

console.log(flatArr, "flatArr");

//[1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9, 11, 12, 12, 13, 14, 10]

es6之数组的flat()方法

[1, 2, [3, 4]].flat()

// [1, 2, 3, 4]

[1, 2, [3, [4, 5]]].flat(2)

// [1, 2, 3, 4, 5]

flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。

flat()的参数为2,表示要拉平两层的嵌套数组。

第二步去重

// 去重

let disArr = Array.from(new Set(flatArr));

console.log(disArr, "disArr");

//[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 10]

数组去重方法比较多set()方法相对最快速

let a=[1,2,4,2,3,1,2,2]

let c=new Set(a);

console.log(c);//Set(4) {1, 2, 4, 3}

最后一步排序

// 排序

let result = disArr.sort(function (a, b) {

return a - b;

});

console.log(result);

//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

sort() 方法用于对数组的元素进行排序。

function sortNumber(a, b){

return a - b; //这里返回的是他们的差值,如果是大于0的值,就会将b排在前面,如果小于0,

就会将a排在前面,如果是0的话,就随便。(冒泡排序法!!)

}

解决方案:

快速处理:

Array.from(new Set(arr.flat(Infinity))).sort((a,b)=>{ return a-b})

//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/690.html

分享给朋友:

“数组处理去重+排序(数组的去重处理)” 的相关文章

Git 分支管理策略与工作流程

(预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。看完这篇文章后,涉及GIT的工作中就会减少因为规范问题导致工作出错,当然如果你现在暂时还未有合...

软件测试-性能测试专题方法与经验总结

本文 从 性能测试流程,性能测试指标,性能监测工具,性能测试工具,性能测试基线,性能测试策略,性能瓶颈分析方法几个维度,进行知识总结和经验分享;详细见下图总结,欢迎大家补充;性能测试经验与思考1. 性能测试流程1.1. 性格规格评审1.2. 资源排期1.2.1. 人力资源1.2.2. 时间计划· 性...

内存问题探微

这篇文章是我在公司 TechDay 上分享的内容的文字实录版,本来不想写这么一篇冗长的文章,因为有不少的同学问是否能写一篇相关的文字版,本来没有的也就有了。说起来这是我第二次在 TechDay 上做的分享,四年前第一届 TechDay 不知天高地厚,上去讲了一个《MySQL 最佳实践》,现在想起来那...

微信将研发“应用号”体系 或成为App大杂烩应用

Akiha发表于 2016-01-11 18:11微信正在探讨一种新的公众号形态,即在现有的订阅号、服务号之外,再研发新的“应用号”体系。让用户不必去装各种 App,在微信里就能实现各种服务、功能;关注后,“应用号”平时不向用户发送消息,需要时,用户再去点开“应用号”等。目前,微信钱包内已有的服务,...

原生微信小程序打包成安卓/IOS应用!#小程序开发

原生微信小程序打包成公。好消息,微信小程序可以直接打包成APP了你们知道吗?微信团队近日开发了一个多端开发平台。多端据文档描述,多端开发框架是支持使用小程序原生语法开发移动端应用的框架。开发者可以一次编码分别编译为小程序安卓以及iOS应用,实现多端开发。我们进入多端框架开发的文档,来看看怎么使用微信...

并列双缸之同步和异步

并列双缸引擎,分为同步双缸和异步双缸1 并列同步引擎即?360°曲轴?相位?,就是将一个大的缸体,分为两个小的缸体。并且它们的活塞是同上同下运行的,虽然它们的机械结构保持了一致,但他们并不是真正意义上的同步工作,因为?它们?是?异步?点火?的?,例如,如果A缸正在点火,那么B缸就处于停功状态。理论上...