JS 中常用的去重


第一種: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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM