JS查找数组中重复元素的方法详解

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技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 公众号SVG动画交互实战代码

    “公众号SVG动画交互实战代码”是一篇涉及到SVG动画实战的代码攻略。本攻略主要介绍了如何使用HTML、CSS、JavaScript和SVG语言来实现有趣、动态的SVG动画,并添加了交互效果。 准备工作 在开始动手之前,有几个准备工作必须要完成。首先,我们需要一个能够编辑代码的文本编辑器,比如Sublime Text、VS Code等。其次,我们需要一些基本…

    JavaScript 2023年6月10日
    00
  • 写给小白的JavaScript引擎指南

    那么让我们开始讲解“写给小白的JavaScript引擎指南”的完整攻略。 指南介绍 “写给小白的JavaScript引擎指南”是一份JavaScript引擎相关知识的入门指南,其中详细讲解了JavaScript引擎的工作原理、代码优化技巧、调试技巧等内容,适合初学者或其他想要深入了解JavaScript引擎的人阅读。 指南内容 JavaScript引擎工作原…

    JavaScript 2023年5月18日
    00
  • JavaScript函数this指向问题详解

    JavaScript函数this指向问题详解 JavaScript 中的 this 关键字经常让初学者感到困惑或者造成一些常见错误。这篇文章将帮助你全面理解 this 的指向问题以及如何正确使用它。 this 的指向 this 的实际指向是在函数被调用时才能确定的,并且在不同的情况中,其指向也不同。 在全局作用域中 在全局作用域(在任何函数之外)中,this…

    JavaScript 2023年5月27日
    00
  • javascript 中关于array的常用方法详解

    下面是关于JavaScript中关于数组常用方法的详解: 1. 数组的创建 在JavaScript中,创建一个数组可以使用以下两种方式: 直接量法 使用直接量法,在中括号中添加元素来创建一个数组,例如: let fruits = [‘apple’, ‘banana’, ‘orange’]; 构造函数法 使用构造函数法,使用Array对象的构造函数来创建一个数…

    JavaScript 2023年5月27日
    00
  • JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享

    JavaScript 中函数参数的传递方式既有值传递(by value),也有引用传递(by reference)。 值传递 函数参数以基本数据类型(如Number、String、Boolean等)为例,是以值传递的方式进行的。值传递表示将实际传递给函数的参数值(即实参)复制一份,传递给函数中对应的参数(即形参),函数中对参数值的修改不会影响到实参的值 下面…

    JavaScript 2023年5月27日
    00
  • JavaScript正则表达式函数总结(常用)

    JavaScript正则表达式函数总结(常用) 正则表达式是用于处理字符串的强大工具,JavaScript内置了正则表达式对象RegExp,使用正则表达式可以快速而灵活地解析、匹配和替换字符串。 常用正则表达式函数 test() test()方法用于测试一个字符串是否匹配某个正则表达式,返回值为布尔类型,如果匹配成功,则返回true,否则返回false。 l…

    JavaScript 2023年5月27日
    00
  • js两种拼接字符串的简单方法(必看)

    JS两种拼接字符串的简单方法 在JavaScript中,有多种方法可以将字符串拼接在一起。在本文中,我们将介绍两种简单的方法。 方法1: 使用加号 “+” 运算符 加号运算符是最常用的字符串拼接方式之一。下面是一个简单的例子: const str1 = "Hello"; const str2 = "world"; co…

    JavaScript 2023年5月28日
    00
  • 在JS中如何把毫秒转换成规定的日期时间格式实例

    为了将毫秒转化为规定格式的日期时间,我们需要使用JavaScript中内置的Date对象以及Date对象自带的各种方法,下面是具体的攻略。 一、使用Date对象的toLocaleString()方法 最简单的将毫秒转化为规定格式的日期时间的方法是使用Date对象的toLocaleString()方法。这个方法可以根据用户的本地时间格式自动将时间转化为字符串。…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部