vlambda博客
学习文章列表

手拉手实现冒泡排序+数组去重

大家好今天是周五,趁着我们经理不在,赶紧我就来摸会儿🐟,记得几个月前面试的时候,深受javascript冒泡排序和数组去重的迫害。一上来面试官就说你来写一下数组排序和去重,直接给我干蒙圈了,面试结果自行脑补,下面就来实现一下数组的排序和去重。
第一步:先思考其实现原理,其实就是把一个数组中的每一个数从前往后依次进行比较,然后根据数的大小进行交换位置。
咱们先定义一个数组,如下:

这次不直接使用for循环,把他封装成一个函数以便以后可以直接使用

手拉手实现冒泡排序+数组去重

    看一下浏览器打印出来的结果:

手拉手实现冒泡排序+数组去重

哎,就非常的nice,还有一种方法更简单,使用ES6的sort方法:

手拉手实现冒泡排序+数组去重

使用sort直接拿数组调用,里面接收一个回调函数,如不想写function可简写成小括号(es6语法),里面再传入两个形参,最后返回出去,看下浏览器打印结果:

手拉手实现冒泡排序+数组去重

    接下来再写数组的去重,也封装成一个函数如下:

手拉手实现冒泡排序+数组去重

看一下打印结果,本来数组中有一个重复的6,去重后就没了

手拉手实现冒泡排序+数组去重

还有一种特别简单的写法用es6的Set加上扩展运算符来写每一句话就可以搞定:

结果是一样的。