📌  相关文章
📜  在数组中查找重复项 - Javascript (1)

📅  最后修改于: 2023-12-03 14:51:27.892000             🧑  作者: Mango

在数组中查找重复项 - Javascript

在开发过程中,我们经常需要查找数组中是否存在重复的元素。Javascript提供了多种方法来实现这一目的。

方法1 - 使用for循环

我们可以通过使用for循环来遍历数组,并通过双重循环来找到重复元素。

function findDuplicates(arr) {
  let duplicates = [];
  
  for(let i=0; i<arr.length; i++) {
    for(let j=i+1; j<arr.length; j++) {
      if(arr[i] === arr[j]) {
        duplicates.push(arr[i]);
        break;
      }
    }
  }
  
  return duplicates;
}

let arr = [1, 2, 3, 4, 5, 2, 3];
let duplicatedValues = findDuplicates(arr);

console.log(duplicatedValues); // 输出 [2, 3]
方法2 - 使用Set

我们也可以使用Javascript的Set来查找重复元素。

function findDuplicates(arr) {
  let duplicates = [];
  let set = new Set();
  
  for(let i=0; i<arr.length; i++) {
    if(set.has(arr[i])) {
      duplicates.push(arr[i]);
    } else {
      set.add(arr[i]);
    }
  }
  
  return duplicates;
}

let arr = [1, 2, 3, 4, 5, 2, 3];
let duplicatedValues = findDuplicates(arr);

console.log(duplicatedValues); // 输出 [2, 3]
方法3 - 使用reduce

我们还可以使用Javascript的reduce方法来查找重复元素。

function findDuplicates(arr) {
  let duplicates = [];
  
  arr.reduce(function(prev, curr) {
    if(prev[curr]) {
      duplicates.push(curr);
    } else {
      prev[curr] = true;
    }
    
    return prev;
  }, {});
  
  return duplicates;
}

let arr = [1, 2, 3, 4, 5, 2, 3];
let duplicatedValues = findDuplicates(arr);

console.log(duplicatedValues); // 输出 [2, 3]

以上三种方法可以解决我们在数组中查找重复项的问题,开发者可以根据实际需求选择合适的解决方法。