JS查找数组中重复元素的方法详解
在 JavaScript 中,有多种方式可以查找一个数组中的重复元素。下面将介绍几种常见的方法。
方法一:使用双重循环
这是最基本的方法之一,它的时间复杂度是 O(n^2)。具体的实现方法如下:
const arr = [1, 2, 3, 4, 5, 6, 7, 7, 8, 9];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
console.log(arr[i]);
}
}
}
双重循环的过程是这样的:对于数组中的每一个元素,都检查一遍整个数组,看看有没有相同的元素。如果找到了一个相同的元素,就输出它的值。这个方法的缺点是效率比较低,特别是对于非常大的数组。
方法二:使用 Set 数据结构
使用 Set 会仅仅保留不同的值,它相当于一个无序且不能重复的集合。我们可以使用 Set 来查找没有重复的值,因为在 Set 中添加重复的值,不会有任何影响。
const arr = [1, 2, 3, 4, 5, 6, 7, 7, 8, 9];
const uniqueSet = new Set(arr);
const uniqueArr = Array.from(uniqueSet);
const duplicateArr = arr.filter((item) => {
return arr.indexOf(item) !== arr.lastIndexOf(item);
});
console.log(uniqueArr);
console.log(duplicateArr);
上述代码使用了 Set 和 Array.from() 来确保不会有重复的值,并且使用 filter() 方法和 indexOf() 和 lastIndexOf() 方法来查找重复的元素。
结语
以上是 js 查找数组中重复元素的方法详解。双重循环在面对大型数据集时效率很低,而使用 Set 可以很好地解决这个问题。同时,还可以使用 filter() 和 indexOf() 和 lastIndexOf() 方法来查找重复元素。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS查找数组中重复元素的方法详解 - Python技术站