国产精品美女久久久浪潮AV,国产精品三级一二三区,久久精品国产一区二区小说 ,依依成人影视国产精品,全部无卡免费的毛片在线看,日本一区二区三深夜不卡,国产精品女同一区二区久久,国产精品夜色一区二区三区

        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 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

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

        日歷

        鏈接

        個人資料

        藍藍設計的小編 http://m.shtzxx.cn

        存檔

        主站蜘蛛池模板: 新邵县| 精品国产自在现线看久久| 国产精品永久免费视频| 无码伊人久久大杳蕉中文无码| 国产六月婷婷爱在线观看| 人妻一本久道久久综合久久鬼色 | 五月婷婷之综合缴情| 欧美毛多水多肥妇| 亚洲av无码乱码在线观看裸奔| 日本欧美一区二区三区乱码| 天堂网中文www在线| 亚洲欧美日韩一区二区| 97免费人妻在线视频| 2022精品久久久久久中文字幕 | 国产白袜脚足j棉袜在线观看| 最近高清中文在线国语字幕| 日本尺码与亚洲尺码区别| 真人二十三式性视频(动)| 俺来也影院| 敦煌市| 亚洲精品一区二区三区四区乱码| 真实国产乱子伦对白视频| 高潮迭起av乳颜射后入| 免费看av在线网站网址| 天天综合天天爱天天做| 五月婷婷综合缴情六月| h成人动漫| 少妇泬喷水18p| 亚洲色偷偷av| 996久久国产精品线观看| 色噜噜狠狠一区二区三区| 欧美成人怡红院一区二区| 睢宁县| 韩国理伦片年轻邻居2| 狠狠热精品免费视频| 国产精品毛片久久久久久久| 欧美精品久久久久久久自慰| 亚洲日本va午夜蜜芽在线电影| 荫蒂添的好舒服视频| 老司机在线精品视频播放| 人妻引诱中文字幕|