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

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

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

多方位熟悉数组处理方法

已知如下数组,编写一个程序将数组扁平化去并除其中重复部分数据,最终得 到一个升序且不重复的数组 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

分享给朋友:

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

「 VUE3 + TS + Vite 」父子组件间如何通信?

组件之间传值,大家都很熟悉,涉及到 VUE3 +TS 好多同学就无从下手了,所以分享这篇文章,希望看完后提起 VUE3+TS 能够不慌不忙。平时使用的函数如:ref、reactive、watch、computed 等需要先引入才能使用,但是本篇文章介绍的 defineProps、withDefaul...

双子座应用程序推出模型切换器以在Android上访问2.0

#头条精品计划# 快速导读谷歌推出了Gemini 2.0 Flash实验版,现已在其安卓应用中可用,之前仅在gemini.google.com网站上提供。新版本的15.50包含模型切换器,用户可以在设置中选择不同模型,包括1.5 Pro、1.5 Flash和2.0 Flash实验版。谷歌提醒,2.0...

全新斯柯达柯珞克Karoq深度评测:大众替代品

“斯柯达柯珞克是一款出色的全能家庭 SUV,具有许多有用的功能”价格36,605 英镑- 49,190 英镑优点方便的 VarioFlex 后排座椅非常适合家庭入住驾驶乐趣缺点保修期短保守的内饰性格比Yeti少结论——斯柯达柯珞克是一辆好车吗?斯柯达柯珞克是在辉煌的七座 斯柯达柯迪亚克之后推出的,因...

JavaScript数组操作:掌握常用方法,提升开发效率

JavaScript数组操作:从增删改查到高级应用本文深入解析JavaScript中常用的数组方法,包括push、unshift、pop、shift、map、filter、reverse、at 和 slice。通过详细的例子和应用场景,帮助开发者快速掌握这些方法,提升代码效率和可读性。开篇点题作为J...

深入理解vue-router原理

说到vue-router就表明他只适合于vue和vue是强绑定的关系;不适合其他框架;现在我们模仿实现一个VueRouter;1.要使页面刷新;借助vue本身的响应式原理;import Home from "./views/Home"; import About from "...

vue 异步更新那点事儿 #web前端

异步更新那点事儿。wue & vueuse官方团队成员。看一下群友投稿的问题。什么问题?就是它这边有一个组件,这个组件里面有个userID,然后这个userID通过props传给了子组件,子组件是userinfo,它里面是用来渲染用户信息的。渲染用户信息的同时,userinfo这个组件又暴露...