0%

【数组去重】写一个数组去重的方法

开发过程中,我们总会遇到一个数组中有多个数字/字符的情况,如果需要去重的话。我们有以下方法。

一、利用ES6的Set数据结构

原理:Set数据结构,它类似于数组,其成员的值都是唯一的。
作用:将数组去重后,变成object类型。

1.利用拓展运算符(…)内部使用for…of循环

1
2
let arr = [3,5,2,2,5,5];
let unique = [...new Set(arr)]; //[3,5,2]

2.利用Array.from将Set结构转换成数组

1
2
3
4
5
function dedupe(array){
return Array.from(new Set(array));
}
dedupe([1,1,2,3]) // [1,2,3]

二、利用indexOf与for循环

原理:查找非重复的值push进新的数组

1
2
3
4
5
6
7
8
9
10
11
let arr = [1,1,2,5,4,2];
function distinct(arr){
let newArr = [];
let arrlength = arr.length;
for(let i=0;i<=length;i++){
if(newArr.indexOf(arr[i])== -1){
newArr.push(arr[i])
}
}
}
console.log(distinct(arr))