在各大公司面试中,我们经常会被问到数组去重算法,这也是一道非常经典的面试题,一般考官会让你用自己擅长的语言,不管是C,C++, Java ,PHP,Javascript都可以。今天我们就来看看,如何利用Javascript来完成数组去重算法。
-
遍历数组算法
核心思想:在函数内部新建一个数组,然后对传入的数组进行遍历,值不在新数组中就添加进去,如果存在就不添加。注意:本算法采用了ES5的indexOf方法,但是因为在IE8以下版本的浏览器中还不支持,因此需要写一个polyfill,算法代码如下所示
-
对象键值对方法
核心思想:新建一个JS对象以及一个新的数组,对传入的数组进行遍历,判断值是否为JS对象的键,如果不是,则给该JS对象插入该键,同时插入新的数组。该算法执行速度最快,但是由于新建了额外的对象与数组,会占用比较的空间。算法代码如下:
-
先排序,再去重
核心思想:首先借用原生sort方法进行排序,然后对排序后的新数组进行相邻元素去重,代码如下
-
优先遍历数组法
核心思想:双层循环,找出最右边的没有重复的值加入新的数组中
-
运行结果
运行几个方法的代码如下
在chrome浏览器中运行后,结果如下图所示,
-
总结
今天我们讲解了下Javascript中比较经典的数组去重算法,希望能对大家有所帮助
如果喜欢的话,记得关注小编噢,小编后续会坚持出更多技术性的文章,如果有任何问题,也欢迎提问,小编都会尽力解答的。