简述Javascript数组怎么去重有哪些?(方法) ?
参考答案:
在JavaScript中,去重数组有多种方法。以下是一些常见的方法:
- 使用 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]
- 使用 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]
- 使用 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]
- 使用 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 更快。