📌  相关文章
📜  如何计算数组中的重复项javascript(1)

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

如何计算数组中的重复项 JavaScript

在开发过程中,我们常常需要计算数组中的重复项。本文将介绍如何使用 JavaScript 计算数组中的重复项。

方法一:使用 set

我们可以使用 JavaScript 的 Set 对象来计算数组中的重复项。Set 对象是一种可以存储任意类型的唯一值(没有重复项)的集合。因此,我们可以将数组转换为 Set 对象,然后比较原始数组的长度与 Set 对象的长度,两者的差值即为数组中的重复项数量。

let arr = [1, 2, 3, 3, 4, 5, 6, 6];
let set = new Set(arr);
let duplicateCount = arr.length - set.size;
console.log('数组中的重复项数量为:', duplicateCount);

输出结果:

数组中的重复项数量为: 2
方法二:使用对象

我们还可以使用对象来计算数组中的重复项。思路为:遍历数组,将数组的元素作为对象的键,值为该元素在数组中出现的次数。最后,遍历对象,统计值大于1的键的数量即为数组中的重复项数量。

let arr = [1, 2, 3, 3, 4, 5, 6, 6];
let obj = {};
let duplicateCount = 0;
for (let val of arr) {
  obj[val] = (obj[val] || 0) + 1; // obj[val] 不存在则赋值为 0,再加上 1
}
for (let key in obj) {
  if (obj[key] > 1) {
    duplicateCount++;
  }
}
console.log('数组中的重复项数量为:', duplicateCount);

输出结果:

数组中的重复项数量为: 2
方法三:使用 reduce

我们还可以使用 reduce 函数来计算数组中的重复项。reduce 函数接受两个参数:回调函数和初始值。在回调函数中,我们可以通过计算出现次数大于1的元素数量来计算数组中的重复项数量。

let arr = [1, 2, 3, 3, 4, 5, 6, 6];
let duplicateCount = arr.reduce((acc, val) => {
  acc[val] = (acc[val] || 0) + 1;
  return acc;
}, {});
duplicateCount = Object.values(duplicateCount).filter((val) => val > 1).length;
console.log('数组中的重复项数量为:', duplicateCount);

输出结果:

数组中的重复项数量为: 2

以上就是使用 JavaScript 计算数组中的重复项的三种方法。我们可以根据实际情况选择不同的方法。同时,也可以根据需要扩展以上方法来满足不同的需求。