📌  相关文章
📜  在数组 javascript 中查找重复的字符串(1)

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

在数组 JavaScript 中查找重复的字符串

在 JavaScript 中,有时候需要查找数组中是否有重复的元素,本文将介绍如何在数组中查找重复的字符串。

判断是否有重复元素

判断一个数组中是否有重复的元素,最简单的方法是利用 Set 和数组的长度来进行比较。如果 Set 中元素的个数小于数组的长度,那么就说明数组中有重复的元素。

const arr = ["apple", "orange", "banana", "apple"];

if (new Set(arr).size !== arr.length) {
  console.log("数组中有重复的元素");
}

以上代码中,我们创建了一个数组 arr,其中包含了重复的元素 "apple"。我们利用 Set 数据结构来过滤掉重复元素,并计算 Set 中元素的个数和数组长度是否相等,如果不相等,就说明数组中有重复的元素。

找出重复的元素

除了知道数组中是否有重复的元素,有时候还需要找出重复的元素是哪些。我们可以利用 Map 来实现这个功能。首先,我们创建一个空的 Map 对象,然后遍历数组中的每个元素:

  • 如果 Map 中已经包含了该元素,那么说明该元素是重复的,将该元素添加到结果列表中;
  • 如果 Map 中没有该元素,那么把该元素作为 key,value 可以任意赋值(比如赋值为 true),添加到 Map 中。
const findDuplicate = function(arr) {
  let map = new Map();
  let result = [];
  
  for (let i = 0; i < arr.length; i++) {
    let key = arr[i];
    if (map.has(key)) {
      result.push(key);
    } else {
      map.set(key, true);
    }
  }
  
  return result;
}

const arr = ["apple", "orange", "banana", "apple"];
console.log(findDuplicate(arr)); // ["apple"]

以上代码中,我们创建了一个 findDuplicate 函数,该函数接收一个数组作为参数,返回包含重复元素的数组。我们创建了一个空的 Map 对象和结果列表,然后遍历数组中的每个元素,判断该元素是否已经存在于 Map 中,如果是,就把该元素添加到结果列表中;如果否,就把该元素作为 key,value 为 true 添加到 Map 中。最后返回结果列表。

结论

以上就是在 JavaScript 中查找重复的字符串的方法。我们可以利用 Set 来判断数组中是否有重复的元素,利用 Map 来找出重复的元素。这些方法对于处理数组中的数据是非常实用的。