js 陣列去重
阿新 • • 發佈:2021-08-13
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]