• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

    JS數組去重的幾種方法

    2021-9-27    前端達人

    數組去重

    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] 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    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] 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    //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] 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    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] //注意這種方法不僅給數組重新排列而且還改變了數組中元素的類型 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    ~是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] 
    
    • 1
    • 2
    • 3
    • 4

    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] 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    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]
    

    藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

    分享此文一切功德,皆悉回向給文章原作者及眾讀者.

    轉自:csdn 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

    藍藍設計www.lzhte.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.lzhte.cn

    存檔

    主站蜘蛛池模板: 538prom国产在线视频| 国产美女视频黄a视频全免费网站| 国产午夜精品视频免费不卡| 在线精品无码字幕无码AV| 亚洲国产精品VA在线观看麻豆 | 久久久久免费看少妇高潮A片 | 狠狠精品久久久无码中文字幕| 福利社av| 精品人妻VA出轨中文字幕| 亚洲A∨国产AV综合AV网站| 中文字幕天天躁日日躁狠狠| 日韩国产精品自在自线| 欧洲精品无码一区二区三区在线播放| 99久久久无码国产精品性| 日韩在线视频线观看一区| 国产精品白浆在线观看无码专区| 视频网站在线观看不卡| 精品久久久无码不卡| 99久久国语露脸国产精品| 成年女人永久免费看片| 国产 中文 制服丝袜 另类| 97免费| 国产V在线在线观看视频免费 | 免费人成又黄又爽的视频网站| 久久久久久久岛国免费观看| 久久婷婷五月综合色d啪| 国产午夜福利影院| 久草视频免费在线播放| 久久久久久久91精品免费观看| 秋霞午夜鲁丝片午夜精品| 国产精品多p对白交换绿帽| 中文字幕日韩wm二在线看| 亚洲色婷婷六月亚洲婷婷6月| 欧美高清在线精品一区| 日产精品久久久久久久性色| 亚洲ⅤA中文字幕无码| 伊人伊狠亚洲综合影院| 亚洲中文字幕一二三四| 久久无码免费束人妻| 福利姬操逼国产| 国产成人亚洲日韩欧美久久|