跳到主要内容

简述Javascript数组怎么去重有哪些?(方法) ?

参考答案:

在JavaScript中,去重数组有多种方法。以下是一些常见的方法:

  1. 使用 Set 数据结构:Set 是 ES6 中引入的一种新的数据结构,它类似于数组,但成员的值都是唯一的,没有重复的值。因此,我们可以利用 Set 的这一特性来去除数组中的重复项。
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
  1. 使用 filter 方法:我们可以使用数组的 filter 方法,配合 indexOf 方法来去除重复项。indexOf 方法会返回元素在数组中首次出现的索引,如果元素在数组中不存在,则返回 -1。因此,我们可以利用这一特性,只保留首次出现的元素。
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
  1. 使用 reduce 方法:reduce 方法会对数组中的每个元素执行一个由您提供的 reducer 函数(升序执行),将其结果汇总为单个返回值。我们可以利用这个特性,只保留首次出现的元素。
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = arr.reduce((accumulator, currentValue) => accumulator.includes(currentValue) ? accumulator : [...accumulator, currentValue], []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
  1. 使用 includes 方法:在遍历数组的过程中,我们可以使用 includes 方法来检查当前元素是否已经在结果数组中,如果没有,则将其添加到结果数组中。
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [];
for(let i = 0; i < arr.length; i++) {
    if(!uniqueArr.includes(arr[i])) {
        uniqueArr.push(arr[i]);
    }
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]

以上就是一些常见的去重数组的方法。请注意,对于大数据量的数组,可能需要选择更适合的方法来提高性能。例如,如果你需要在一个大型数组中删除重复项,那么使用 Set 可能会比使用 filter 或 reduce 更快。