JS 中常用的去重
阿新 • • 發佈:2021-12-14
ES5和ES6 常用的去重方法
第一種:indexOf (獲取字串值在字串中首次出現的位置,若沒有這個值,則返回-1)
let arr = [15,45,88,45,78,15,55,88];
let arr1 = []; //宣告新陣列
for(let i in arr){ //for...in 遍歷陣列
if(arr1.indexOf(arr[i]) == -1){ 使用indexOf 判斷arr1和arr 裡面是否有相同的,沒有就新增,有就不新增;
arr1.push(arr[i]);
}
}
console.log(arr1);
第二種:雙for迴圈 (每一個數據進行判斷)
let arr = [15, 45, 88, 45, 78, 15, 55, 88]; for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j++) { if (arr[i] == arr[j]) { //判斷是否遇到相同的元素 arr.splice(j, 1);//遇到就刪除一個元素 j--; //陣列的總長度發生了改變,進行j-- } } } console.log(arr);
第三種:filter
let arr = [15, 45, 88, 45, 78, 15, 55, 88];
function fn(arr){
return arr.filter((item,index,arr)=>{
return arr.indexOf(item,0) === index; //當前元素,在原始陣列中的第一個索引==當前索引值,否則返回當前元素
});
}
console.log(fn(arr));
第四種:Set (ES6)
let arr = [15, 45, 88, 45, 78, 15, 55, 88]; let s = new Set(arr) //實現陣列去重,但不是陣列型別 arr = [...new Set(arr)]; //轉為arrAry型別 console.log(arr);
第五種:[...new Set(arrAry)] (ES6)
let arr = [15, 45, 88, 45, 78, 15, 55, 88];
arr = [...new Set(arr)];
console.log(arr);
本文來自部落格園,作者:{陳滿想},轉載請註明原文連結:https://www.cnblogs.com/Aman124/p/15689544.html