js判断数组是否有重复数据
时间: 2023-05-04 18:02:46 浏览: 118
在JavaScript中,我们可以使用循环遍历数组,并且嵌套一个内部循环来判断是否存在重复数据。
一个常见的做法是创建一个空的对象(hash表),然后遍历数组,将每个元素作为对象的key存储,如果已经存在相同的key,则表示数组中存在重复数据。下面是代码实现:
```javascript
function hasDuplicate(arr){
var obj = {};
for(var i = 0; i < arr.length; i++){
if(obj[arr[i]]){ //如果已经存在该元素,则存在重复数据
return true;
}else{
obj[arr[i]] = true; //将该元素作为key存储到对象中
}
}
return false; //不存在重复数据
}
//测试
var arr1 = [1, 2, 3, 4, 5];
console.log(hasDuplicate(arr1)); //false
var arr2 = [1, 2, 3, 4, 5, 3];
console.log(hasDuplicate(arr2)); //true
```
另外一种做法是使用ES6中的Set数据结构,将数组转换为Set对象,再比较Set对象的长度和原数组长度是否一致,如果不一致则存在重复数据。下面是代码实现:
```javascript
function hasDuplicate(arr){
return arr.length !== new Set(arr).size;
}
//测试
var arr1 = [1, 2, 3, 4, 5];
console.log(hasDuplicate(arr1)); //false
var arr2 = [1, 2, 3, 4, 5, 3];
console.log(hasDuplicate(arr2)); //true
```
两种方法都比较简单,可以根据实际情况选择使用。
阅读全文