js 数组去重

1:使用indexOf()去重

原理:数组.indexOf(item) 返回的是item在这个数组中第一次出现位置的索引值

例子:[1,1,2,2,3],当第二个1出现的时候返回的索引值是0

 1 function unique(arr){
 2     for(var i = 0;i<arr.length;i++){
 3         if(arr.indexOf(arr[i]) != i){
 4             console.log(arr,111)
 5             arr.splice(i,1)//第一个参数是要删除的数组起始位置的索引值,第二个是要删除的个数。
 6         }
 7     }
 8     return arr
 9 }
10 let arr = [1,1,2,3,3,4]
11 console.log(unqit(arr),222)

2:使用includes()去重

原理:创建一个新数组,每次循环检测,如果新数组里面不包含当前值,就把当前值添加进新数组里面

 1 function unqit(arr){
 2     var newArr = []
 3     for(var i = 0;i<arr.length;i++){
 4         if(!newArr.includes(arr[i])){
 5             newArr.push(arr[i])
 6         }
 7     }
 8     return newArr
 9 }
10 let arr = [1,1,2,3,3,4]
11 console.log(unqit(arr),222)

3:使用set()去重

1 let arr = [1,1,2,2,3,4]
2 
3 let newArr = new Set(arr) //得到一个类数组
4 
5 //Set(4) {1,2,3,4}
6 
7 let uniqueArr = Array.from(newArr)
8 
9 console.log(uniqueArr )//[1,2,3,4]

 

posted @ 2021-08-13 17:31  Liu-H-W  阅读(61)  评论(0)    收藏  举报