91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Javascript數組怎樣去重

發布時間:2021-09-26 18:08:08 來源:億速云 閱讀:142 作者:小新 欄目:開發技術

這篇文章主要介紹Javascript數組怎樣去重,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

    數組去重

    1 雙層for循環(類似冒泡排序的雙層循環寫法)

    var arr = [2,3,4,2,34,21,1,12,3,4,1]
    for(var i =0;i<arr.length;i++){
        //第一層:每次循環拿到arr中一個元素
    	for(var j=i+1;j<arr.length;j++){
            //第二層:每次拿到的元素再和每次拿到的元素后邊的元素依次進行比對(因為第一個要從第二個開始比,第二個要從第三個比以此類推,所以這里的j應比i大1為j=i+1)
        	if(arr[i] === arr[j]){
                //如果相同就刪除后邊的元素
            	arr.splice(j,1)
        	}
        }
    }
    //arr:[1, 2, 3, 4, 12, 21, 34]

    2 循環和indexof、循環和includes

    創建新數組,循環舊數組,看每次循環的元素是否存在于新數組中沒有就把當前元素添加到新數組中

    //indexof
    var arr = [2,3,4,2,34,21,1,12,3,4,1]
    var arr2 = []
    arr.forEach((e)=>{
        if(arr2.indexOf(e)==-1){
            arr2.push(e)
        }
    })
    console.log(arr2)
    //arr2:[1, 2, 3, 4, 12, 21, 34]
    //includes
    var arr = [2,3,4,2,34,21,1,12,3,4,1]
    var arr2 = []
    arr.forEach((e)=>{
        if(!arr2.includes(e)){
            arr2.push(e)
        }
    })
    console.log(arr2)
    //arr2:[1, 2, 3, 4, 12, 21, 34]

    3 利用對象屬性不能重復去重

    var arr = [2,3,4,2,34,21,1,12,3,4,1]
    var obj = {};
    arr.forEach((e,i)=>{
        obj[arr[i]] = "abc";   
    });
    var arr2=Object.keys(obj)
    console.log(arr2)
    //arr2:["1", "2", "3", "4", "12", "21", "34"]
    var arr3 = arr2.map(e => ~~e )
    //arr3:[1, 2, 3, 4, 12, 21, 34]
    //注意這種方法不僅給數組重新排列而且還改變了數組中元素的類型

    ~是js里的按位取反操作符,~~就是執行兩次按位取反,其實就是保持原值,但是注意雖然是原值,但是對布爾型變量執行這個操作,會轉化成相應的數值型變量,也就是 ~~true === 1,~~false === 0。

    4 ES6 Set

    ES6 提供了新的數據結構 Set。它類似于數組,但是成員的值都是唯一的,沒有重復的值。

    var arr = [2,3,4,2,34,21,1,12,3,4,1]
    var arr1 = [...new Set(arr)]
    console.log(arr1)
    //arr1:[1, 2, 3, 4, 12, 21, 34]

    5 ES6 Array. prototype.filter()

    注:indexOf在數組中找元素的時候,碰到符合條件的第一個就會把它的下標返回

    var arr = [2,3,4,2,34,21,1,12,3,4,1]
    var arr2 = arr.filter((e,i)=>{
        //看每次循環的元素在數組中出現的第一個下標位置(indexOf返回的位置),和每次循環的元素的下標(filter循環每次的i)是否一致,一致就說明他就是第一個符合條件,不會被過濾掉。
        return arr.indexOf(e)==i;
    })
    console.log(arr2)
    //arr2:[1, 2, 3, 4, 12, 21, 34]

    6 ES6 Array. prototype.reduce()

    var arr = [2,3,4,2,34,21,1,12,3,4,1]
    var arr2 = arr.reduce((pre,e)=>{
        //這里當然也可以用indexOf來判斷是否存在
        pre.includes(e)?pre:pre.push(e);
        return pre
    },[])
    console.log(arr2)
    //arr2:[1, 2, 3, 4, 12, 21, 34]

    以上是“Javascript數組怎樣去重”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    曲水县| 汕尾市| 于田县| 梅州市| 彰化县| 怀安县| 荃湾区| 稷山县| 梁河县| 宁波市| 息烽县| 平谷区| 和平县| 竹北市| 盱眙县| 县级市| 镇江市| 桑植县| 威信县| 中宁县| 广灵县| 霍州市| 吉水县| 双牌县| 隆昌县| 揭东县| 河源市| 东平县| 永吉县| 扎鲁特旗| 永安市| 平湖市| 元江| 麻栗坡县| 彭泽县| 东乌珠穆沁旗| 利川市| 兰西县| 神木县| 古丈县| 大埔区|