JS判断数组中是否有重复值得三种实用方法

yizhihongxing

下面我详细讲解下“JS判断数组中是否有重复值得三种实用方法”的完整攻略。

方法一:Set对象

利用Set对象可以去除数组中的重复元素,因此,先将原数组利用Set对象去重,然后比较去重后的数组长度和原数组长度即可判断原数组中是否有重复元素。

示例代码如下:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1];
let setArr = new Set(arr);
if (setArr.size !== arr.length) {
  console.log('Array contains duplicates');
} else {
  console.log('Array does not contain duplicates');
}

方法二:for循环嵌套

使用两个for循环嵌套,分别遍历数组中的每个元素,比较它们的值是否相等。如果在内部循环中找到了相同的元素,则说明原数组中存在重复元素。

示例代码如下:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1];
let flag = false;
for (let i = 0; i < arr.length - 1; i++) {
  for (let j = i + 1; j < arr.length; j++) {
    if (arr[i] === arr[j]) {
      flag = true;
      break;
    }
  }
  if (flag) {
    break;
  }
}
if (flag) {
  console.log('Array contains duplicates');
} else {
  console.log('Array does not contain duplicates');
}

方法三:indexOf和lastIndexOf方法

利用数组的indexOf和lastIndexOf方法,分别查找当前元素第一次和最后一次出现的位置,如果这两个位置不相等,则说明该元素在数组中重复出现。

示例代码如下:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1];
let flag = false;
for (let i = 0; i < arr.length; i++) {
  if (arr.indexOf(arr[i]) !== arr.lastIndexOf(arr[i])) {
    flag = true;
    break;
  }
}
if (flag) {
  console.log('Array contains duplicates');
} else {
  console.log('Array does not contain duplicates');
}

以上三种方法可以较好的判断数组中是否有重复值,根据实际情况选择使用即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS判断数组中是否有重复值得三种实用方法 - Python技术站

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

相关文章

  • 通过JS 获取Mouse Position(鼠标坐标)的代码

    获取鼠标坐标是JavaScript中的常见需求之一,可以通过鼠标事件对象获取鼠标相对于页面的坐标位置。 以下是获取鼠标位置的代码: document.addEventListener(‘mousemove’, (event) => { const mouseX = event.clientX; const mouseY = event.clientY;…

    JavaScript 2023年6月10日
    00
  • 用js删除tbody的代码

    下面是用 JavaScript 删除 tbody 的完整攻略: 步骤一:获取 tbody 元素 在删除 tbody 之前,需要先获取 tbody 元素。可以通过以下三种方式获取 tbody 元素: 1. getElementById 方法 使用 getElementById 方法获取指定 Id 的元素。 const tbody = document.getE…

    JavaScript 2023年6月11日
    00
  • javascript中的变量作用域以及变量提升详细介绍

    让我们来详细讲解一下”JavaScript中的变量作用域以及变量提升”。 变量作用域 变量作用域是指程序中定义变量的区域。JavaScript中,变量作用域有两种类型:全局作用域和局部作用域。 全局作用域 在全局作用域中定义的变量,可以被代码中的任意函数所访问: // 全局作用域 var globalVar = "我是全局变量"; fun…

    JavaScript 2023年6月11日
    00
  • eval有时候也可以用,而且有奇效

    eval,一个我曾经避之不及的函数,最近我对它产生了一点新的感触:eval有时候也可以用,有奇效。 一般在使用js进行开发时,是不建议使用eval这类函数的。在JavaScript中,eval可以计算传入的字符串,将其当作js代码来执行。因为它可执行js代码的特性,有可能被第三方利用,传入恶意js代码执行,因此这个函数存在安全风险。再加上eval执行的速度低…

    JavaScript 2023年4月18日
    00
  • js日期相关函数总结分享

    JS日期相关函数总结分享 简介 日期在前端开发中非常常见,JavaScript原生提供了许多日期相关的函数,本文将会总结下这些相关函数。 获取Date对象 获取Date对象可以使用以下几个方式: new Date() 使用new Date()方式获取Date对象,可以获取当前日期时间。 const now = new Date(); // 获取当前日期 co…

    JavaScript 2023年5月27日
    00
  • JavaScript创建对象的七种方式全面总结

    JavaScript创建对象的七种方式全面总结 在JavaScript中,有多种方式可以创建对象,本篇文章将介绍七种常用的创建对象的方式,并通过示例代码对其进行详细的讲解。 1. 对象字面量 最常用的创建对象的方式就是使用对象字面量,即在花括号内定义属性和值。 示例代码: var person = { name: "John", age:…

    JavaScript 2023年5月27日
    00
  • Ajax同步与异步传输的示例代码

    下面我将详细讲解一下“Ajax同步与异步传输的示例代码”的完整攻略。 什么是Ajax? Ajax是指异步JavaScript和XML(Asynchronous JavaScript and XML)的缩写,其主要用于在Web应用程序中实现异步数据交换,从而实现与服务器对数据进行交互而无需刷新整个页面的效果。Ajax避免了传统页面刷新方式在交互效率和用户体验方…

    JavaScript 2023年6月11日
    00
  • 禁止js文件缓存的代码

    要禁止JS文件缓存,我们可以设置HTTP响应报文的Header头信息,具体方法如下: 在HTTP响应报文的Header头信息中添加Expires字段和Cache-Control字段,并相应地设置其值。其中Expires字段用于指定客户端缓存的过期时间,Cache-Control字段则用于控制缓存策略。我们可以将这两个字段的值都设置为0,表示不允许客户端缓存该…

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