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

yizhihongxing

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日

相关文章

  • Javascript 的addEventListener()及attachEvent()区别分析

    JavaScript 是一门用于网页前端开发的脚本语言,常常用于实现交互效果。而事件是页面上用户与页面交互时所发生的事情,例如用户单击、鼠标移动等。在 JavaScript 中,操作事件的方式主要有两种:addEventListener() 和 attachEvent()。本篇攻略将会对它们的区别进行分析与讲解。 addEventListener() add…

    JavaScript 2023年6月10日
    00
  • javascript中几个容易混淆的概念总结

    下面我将为你详细讲解 “JavaScript 中几个容易混淆的概念总结”。 1. JavaScript 中的对象和原始类型 JavaScript 中的类型可分为两种,即原始类型和对象类型。原始类型包括字符串、数字、布尔值、undefined 和 null 等。而对象类型则包括对象、数组、函数和正则表达式等。 let str = "hello&quo…

    JavaScript 2023年6月10日
    00
  • JS实现时间格式化的方式汇总

    让我来为你详细讲解如何实现JavaScript时间格式化。 1. 背景 在日常编程中,我们常常需要将时间戳转换为可读的时间格式,比如将 1616685660000 转换为 2021-03-25 16:14:20 的形式。JavaScript提供了以下几种方式来实现时间格式化: 使用原生JavaScript Date对象的 toLocaleString() 方…

    JavaScript 2023年5月27日
    00
  • javascript 保存文件到本地实现方法

    下面是关于“JavaScript保存文件到本地实现方法”的攻略: 简介 在Web应用程序中,有时可能需要将用户生成的数据以文件的形式保存到本地硬盘,以备以后离线查看或者处理。这个时候,可以使用JavaScript来实现将数据保存到本地的功能。本文将介绍两种常用的方法。 方法一:使用Blob和URL.createObjectURL() 该方法的核心是使用Blo…

    JavaScript 2023年5月27日
    00
  • DIV常见任务(下) —变身为编辑器及div的各种diy应用

    DIV常见任务(下) —变身为编辑器及div的各种diy应用 简介 在网页开发中,DIV是使用最多的元素之一,除了常规的布局外,DIV还可以通过一些diy的方式实现更多的功能,如编辑器、拖拽、手势识别等。本文将介绍DIV的一些diy应用,供读者学习参考。 DIV变身为编辑器 通过一些技巧和库,我们可以将DIV变身为一个简单的富文本编辑器,而无需使用第三方的J…

    JavaScript 2023年6月11日
    00
  • js判断是否为数组的函数: isArray()

    要判断一个变量是否为数组,我们可以使用JavaScript中的isArray()函数。以下是关于该函数的详细攻略: 语法 Array.isArray(obj) 参数 obj:必需。 检测该对象是否是数组。 返回值 如果 obj 是数组返回 true,否则返回 false。 示例一 const arr = [1, 2, 3]; console.log(Arra…

    JavaScript 2023年5月27日
    00
  • javascript 词法作用域和闭包分析说明

    Javascript 词法作用域和闭包分析说明 什么是词法作用域 Javascript 的词法作用域是指一个变量的作用范围仅限于它所在的代码块内部。也就是说,一个变量的作用域由它在代码中的位置决定。 举个例子: var a = 1; function foo() { var b = 2; console.log(a, b); // 1, 2 } foo();…

    JavaScript 2023年6月10日
    00
  • Javascript之String对象详解

    Javascript之String对象详解 String对象简介 String对象是Javascript中的基本对象之一,用来表示字符串类型。在Javascript程序中,经常需要对字符串进行各种处理,使用String对象提供的方法便可轻松实现。 String对象的创建 可以使用字面量、字符串构造函数或toString()函数来创建String对象。 var…

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