📌  相关文章
📜  检查数组javascript中的重复项(1)

📅  最后修改于: 2023-12-03 15:10:53.718000             🧑  作者: Mango

检查数组 JavaScript 中的重复项

在 JavaScript 中,我们经常需要处理数组。一个常见的问题是检查一个数组是否包含重复的元素。本文将向您介绍两种方法来检查数组中的重复项。

方法一:使用 Set

Set 是 ES6 中引入的新数据结构。如果您不熟悉 Set,请先查看 MDN Web Docs

使用 Set 判断一个数组是否包含重复项的步骤如下:

  1. 创建一个 Set 对象

  2. 遍历数组,使用 Set 对象的 add 方法向 Set 中添加元素

  3. 判断 Set 的 size 和数组的 length 是否相等,如果不相等,则说明数组中包含重复项

以下是使用 Set 判断数组中是否包含重复项的代码:

function hasDuplicates(arr) {
  return (new Set(arr)).size !== arr.length;
}

// 使用示例
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [1, 2, 3, 4, 5, 5];

console.log(hasDuplicates(arr1)); // false
console.log(hasDuplicates(arr2)); // true
方法二:使用 indexOf 和 lastIndexOf

另一种判断数组中是否包含重复项的方法是使用 indexOf 和 lastIndexOf 方法。

首先,我们需要遍历数组中的每个元素,并使用 indexOf 方法找到第一个匹配的元素的索引。然后,我们使用 lastIndexOf 方法找到数组中最后一个匹配的元素的索引。如果这两个索引不同,则说明数组中存在重复项。

以下是使用 indexOf 和 lastIndexOf 判断数组中是否包含重复项的代码:

function hasDuplicates(arr) {
  for (let i = 0; i < arr.length; i++) {
    if (arr.indexOf(arr[i]) !== arr.lastIndexOf(arr[i])) {
      return true;
    }
  }
  return false;
}

// 使用示例
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [1, 2, 3, 4, 5, 5];

console.log(hasDuplicates(arr1)); // false
console.log(hasDuplicates(arr2)); // true
总结

在 JavaScript 中检查数组中是否包含重复项,有多种方法可供选择。在本文中,我们介绍了两种方法:使用 Set 和使用 indexOf 和 lastIndexOf。这些方法都很简单,您可以根据自己的需求选择适合自己的方法。