快捷搜索:  汽车  科技

JS常见面试题-判断数组中是否有重复元素(JS常见面试题-判断数组中是否有重复元素)

JS常见面试题-判断数组中是否有重复元素(JS常见面试题-判断数组中是否有重复元素)根据上述的思想,我们得到以下的代码。最后判断,如果在剩下的字符串中还能匹配出元素对应的字符串,则代表数组中有相同的元素。主要思想:对于任意的数组,首先将其用特定的分隔符转化字符串,然后在末尾添加一个相同的分隔符。然后对数组元素进行遍历,将得到的字符串中元素对应的字符串用空串代替。

前言

今天这篇文章我们一起来看看,一道常见的关于Javascript的面试题,如何判断一个数组中是否有重复的元素?

这篇文章的代码我已经放到了自己的github上,感兴趣的同学可以看看。

https://github.com/zhouxiongking/article-pages/blob/master/articles/isDuplicateEleInArr/isDuplicateEleInArr.js

JS常见面试题-判断数组中是否有重复元素(JS常见面试题-判断数组中是否有重复元素)(1)

Javascript

方法1

主要思想:

  • 对于任意的数组,首先将其用特定的分隔符转化字符串,然后在末尾添加一个相同的分隔符。

  • 然后对数组元素进行遍历,将得到的字符串中元素对应的字符串用空串代替。

  • 最后判断,如果在剩下的字符串中还能匹配出元素对应的字符串,则代表数组中有相同的元素。

根据上述的思想,我们得到以下的代码。

方法1代码

通过以下测试,证明了上述方法的正确性。

JS常见面试题-判断数组中是否有重复元素(JS常见面试题-判断数组中是否有重复元素)(2)

方法1测试

方法2

主要思想:

  • 借助Array原生的sort方法,先将数组排好序

  • 每个元素依次和后面的元素相比较,如果相同则表明数组中有相同的元素

根据以上的思想可以得出以下的代码实现。

JS常见面试题-判断数组中是否有重复元素(JS常见面试题-判断数组中是否有重复元素)(3)

方法2代码

通过以下测试证明方法2的正确性。

JS常见面试题-判断数组中是否有重复元素(JS常见面试题-判断数组中是否有重复元素)(4)

方法2测试

方法3

主要思想:

  • 创建一个对象,将数组中的每个值作为对象的键。

  • 依次判断对象的键是否已经存在,如果已经存在则表明数组有重复元素。

根据主要思想可以得到以下的代码。

JS常见面试题-判断数组中是否有重复元素(JS常见面试题-判断数组中是否有重复元素)(5)

方法3代码

通过以下测试,证明方法3的正确性。

JS常见面试题-判断数组中是否有重复元素(JS常见面试题-判断数组中是否有重复元素)(6)

方法3测试

方法4

主要思想:

  • 借助Array原生的reduce方法,将数组元素做为一个对象的键,设定值为任意简单值类型

  • 判断得到对象的key长度是否和数组长度相同,如果不相同则表明数组中有重复元素。

方法4和方法3其实主要思想是一样的,都是利用对象键值对的唯一性,方法4相比于方法3代码会更加简洁。

通过以上思想得到以下方法代码。

JS常见面试题-判断数组中是否有重复元素(JS常见面试题-判断数组中是否有重复元素)(7)

方法4代码

通过以下测试,证明方法4的正确性。

JS常见面试题-判断数组中是否有重复元素(JS常见面试题-判断数组中是否有重复元素)(8)

方法4测试

说明

上述的方法测试代码中只是假定数组元素为简单类型,其实数组元素也可以为对象类型,如果是对象类型的话,一般是比较对象的某个属性,此时就同上述方法一样。

结束语

今天这篇文章中讲到的四种判断数组中是否有重复元素的方法,大家都学会了吗?或者大家有其他方法也欢迎交流。

猜您喜欢: