精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

攜程 & 蘑菇街 & bilibili:手寫數組去重、扁平化函數

開發 前端
flat() 方法會按照一個可指定的深度遞歸遍歷數組,并將所有元素與遍歷到的子數組中的元素合并為一個新數組返回.

[[436474]]

數組扁平化(又稱數組降維)

MDN:flat() 方法會按照一個可指定的深度遞歸遍歷數組,并將所有元素與遍歷到的子數組中的元素合并為一個新數組返回。

  1. const test = ["a", ["b""c"], ["d", ["e", ["f"]], "g"]] 
  2.  
  3. // 不傳參數時,默認扁平化一層 
  4. test.flat() 
  5. // ["a""b""c""d", ["e", ["f"]], "g"
  6.  
  7. // 傳入一個整數參數,整數即扁平化的層數 
  8. test.flat(2) 
  9. // ["a""b""c""d""e", ["f"], "g"
  10.  
  11. // Infinity 關鍵字作為參數時,無論多少層嵌套,都會轉為一維數組 
  12. test.flat(Infinity) 
  13. // ["a""b""c""d""e""f""g"
  14.  
  15. // 傳入 <=0 的整數將返回原數組,不扁平化 
  16. test.flat(0) 
  17. test.flat(-10) 
  18. // ["a", ["b""c"], ["d", ["e", ["f"]], "g"]] 
  19.  
  20. // 如果原數組有空位,flat()方法會跳過空位。 
  21. ["a""b""c""d",,].flat() 
  22. // ["a""b""c""d"

Array.prototype.flat() 特性總結:

  • Array.prototype.flat() 用于將嵌套的數組扁平化,變成一維的數組。該方法返回一個新數組,對原數據沒有影響。
  • 不傳參數時,默認扁平化一層,可以傳入一個整數,表示想要扁平化的層數。
  • 傳入 <=0 的整數將返回原數組,不扁平化。
  • Infinity 關鍵字作為參數時,無論多少層嵌套,都會轉為一維數組。
  • 如果原數組有空位,Array.prototype.flat() 會跳過空位。

方法一:使用 reduce 方法

一次性扁平化所有:

  1. function flattenDeep(arr) {  
  2.     return Array.isArray(arr) 
  3.       ? arr.reduce( (acc, cur) => [...acc, ...flattenDeep(cur)] , []) 
  4.       : [arr] 
  5.  
  6. // 測試 
  7. var test = ["a", ["b""c"], ["d", ["e", ["f"]], "g"]] 
  8. flattenDeep(test) 
  9. // ["a""b""c""d""e""f""g"

實現 flat 函數:

  1. function flat(arr, depth = 1) { 
  2.     return depth > 0 
  3.         ? arr.reduce((acc, cur) => { 
  4.         if(Array.isArray(cur)) { 
  5.             return [...acc, ...flat(cur, depth-1)] 
  6.         } 
  7.         return [...acc, cur] 
  8.     } , []) 
  9.       : arr 
  10.  
  11. // 測試 
  12. var test = ["a", ["b""c"], ["d", ["e", ["f"]], "g"]] 
  13. // 不傳參數時,默認扁平化一層 
  14. flat(test) 
  15. // ["a""b""c""d", ["e", ["f"]], "g"
  16.  
  17. // 傳入一個整數參數,整數即扁平化的層數 
  18. flat(test, 2) 
  19. // ["a""b""c""d""e", ["f"], "g"
  20.  
  21. // Infinity 關鍵字作為參數時,無論多少層嵌套,都會轉為一維數組 
  22. flat(test, Infinity) 
  23. // ["a""b""c""d""e""f""g"
  24.  
  25. // 傳入 <=0 的整數將返回原數組,不扁平化 
  26. flat(test, 0) 
  27. flat(test, -10) 
  28. // ["a", ["b""c"], ["d", ["e", ["f"]], "g"]]; 
  29.  
  30. // 如果原數組有空位,flat()方法會跳過空位。 
  31. var arr = ["a""b""c""d",,] 
  32. flat(arr) 
  33. // ["a""b""c""d"

方法二:棧

一次性降維所有

  1. function flattenDeep(arr) { 
  2.   const result = []  
  3.   // 將數組元素拷貝至棧,直接賦值會改變原數組 
  4.   const stack = [...arr] 
  5.   // 如果棧不為空,則循環遍歷 
  6.   while (stack.length !== 0) { 
  7.     const val = stack.pop()  
  8.     if (Array.isArray(val)) { 
  9.       // 如果是數組再次入棧,并且展開了一層 
  10.       stack.push(...val)  
  11.     } else { 
  12.       // 如果不是數組,就用頭插法插入到結果數組中 
  13.       result.unshift(val) 
  14.     } 
  15.   } 
  16.   return result 
  17.  
  18. // 測試 
  19. var test = ["a", ["b""c"], ["d", ["e", ["f"]], "g"]] 
  20. flattenDeep(animals) 
  21. // ["a""b""c""d""e""f""g"

數組去重

方式一:Set(ES6)

  1. function unique(arr) { 
  2.     return Array.from(new Set(arr)) 
  3. // 或者 
  4. var unique = arr => [...new Set(arr)] 
  5.  
  6. // 測試 
  7. var arr = [1, 2, 2, 3] 
  8. unique(arr); // [1, 2, 3] 

方式二:reduce

  1. function unique (arr) { 
  2.     return arr.sort().reduce((acc, cur) => { 
  3.      if (acc.length === 0 || acc[acc.length - 1] !== cur) { 
  4.          acc.push(cur); 
  5.      } 
  6.      return acc 
  7.  }, [])} 
  8.  
  9. // 測試 
  10. var arr = [1, 2, 2, 3] 
  11. unique(arr); // [1, 2, 3] 

方法三:filter

  1. function unique(arr) {  
  2.     return arr.filter( (element, index, array) => { 
  3.      return array.indexOf(element) === index 
  4.  }) 
  5.  
  6. // 測試 
  7. var arr = [1, 2, 2, 3] 
  8. unique(arr); // [1, 2, 3] 

 

責任編輯:武曉燕 來源: 三分鐘學前端
相關推薦

2013-09-22 15:03:27

扁平化UI設計

2013-09-22 15:43:27

扁平化UI設計

2013-09-22 14:47:50

扁平化UI設計

2013-09-22 14:56:26

扁平化UI設計

2020-09-16 14:17:42

flat方法

2013-09-22 14:30:43

扁平化設計

2013-09-22 16:17:59

扁平化UI設計

2013-09-22 16:36:07

扁平化UI設計

2013-09-22 16:22:58

扁平化UI設計

2019-04-08 16:29:28

多云扁平化云計算

2013-09-23 10:16:04

扁平化UI設計

2013-07-11 09:45:48

扁平化扁平化設計

2021-11-07 14:37:59

列表編碼扁平化

2013-09-22 16:30:13

扁平化UI設計

2013-06-09 11:04:07

設計扁平化設計平面化設計

2013-09-25 10:52:27

Android 4.4扁平化

2013-01-28 09:39:05

用戶界面扁平化設計

2017-10-13 17:35:30

深度學習移動端機器學習

2013-09-22 15:09:04

扁平化UI設計

2010-10-25 14:16:59

扁平化網絡
點贊
收藏

51CTO技術棧公眾號

黄色三级视频在线| 日韩福利在线| 亚洲国产成人精品激情在线| 少妇高潮一区二区三区| 色呦呦国产精品| 欧美精品久久96人妻无码| 秋霞网一区二区| 日韩国产欧美视频| 欧美激情精品久久久久久| 3d动漫精品啪啪一区二区下载| 岛国精品在线| 亚洲成人动漫av| 亚洲视频在线二区| 香蕉av一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产区一区二| 中文字幕中文乱码欧美一区二区 | 日韩电影免费观看在| 国产激情久久久久久熟女老人av| 久久精品30| 九九热最新视频//这里只有精品| 亚洲av无码一区二区三区人| 一区二区亚洲视频| 欧美福利电影网| 欧美成人精品欧美一级乱| 国产午夜精品久久久久免费视| 91丨九色丨国产丨porny| 超碰97人人在线| 亚洲中文字幕在线一区| 久久国产一二区| 午夜精品一区二区三区av| 国产又黄又爽又无遮挡| 99国产**精品****| 中文日韩在线视频| av黄色免费网站| 国产欧美三级电影| 欧美成人精品高清在线播放| 国产成人美女视频| 欧美一级免费| 欧美日韩一区高清| 国产视频一区二区三区在线播放| 中文字幕在线看片| 黄色91在线观看| 奇米影视亚洲色图| 国精产品一区一区三区mba下载| 中文字幕在线一区二区三区| 亚洲精品久久久久久一区二区| 国产在线一二| 久久久精品tv| 免费国产一区| 男男激情在线| 久久女同互慰一区二区三区| 久久久久网址| 精品视频二区| 国产欧美日韩在线视频| 亚洲精品日韩精品| 日本在线免费看| 亚洲人成影院在线观看| 欧美一级黄色录像片| 爆操欧美美女| 亚洲一区在线免费观看| 久草视频国产在线| 欧美大胆a人体大胆做受| 精品欧美aⅴ在线网站| 激情综合网婷婷| 91欧美精品| 6080午夜不卡| 欧美熟妇精品一区二区| 成人免费在线电影网| 亚洲国产精彩中文乱码av在线播放| 69亚洲乱人伦| 免费欧美视频| 深夜福利亚洲导航| 国产精品免费人成网站酒店| 国产精品videossex久久发布| 久久久久国色av免费观看性色| 国产精品成人aaaa在线| 久久福利一区| 成人国产精品免费视频| 丰满少妇被猛烈进入| 2019国产精品| 亚洲一二区在线| 欧美hdxxxxx| 色诱亚洲精品久久久久久| 色www免费视频| 99热这里只有精品首页| 亚洲欧美日韩国产精品| 久久99久久99精品免费看小说| 国内在线观看一区二区三区| 国产成人av网址| 国产欧美一级片| 99re8在线精品视频免费播放| 日韩wuma| 久久久久黄久久免费漫画| 色婷婷av一区二区三区软件| 手机在线免费毛片| 久久99国产成人小视频| 欧美www在线| 无码人妻精品一区二区50| 国产真实精品久久二三区| 九色91国产| www视频在线看| 色狠狠一区二区| 国产视频精品视频| 日韩中文在线电影| 2019亚洲男人天堂| 国产黄色小视频在线观看| 国产三级精品视频| 亚洲熟妇无码一区二区三区| 青娱乐极品盛宴一区二区| 日韩精品视频三区| 亚洲色婷婷一区二区三区| 日韩精品高清不卡| 精品久久久久久中文字幕动漫 | 久久大胆人体视频| 日韩有码在线电影| 丰满少妇xoxoxo视频| 成人深夜在线观看| 97超碰免费观看| 久久亚洲精品爱爱| 日韩激情在线视频| 精品一区二区三区人妻| 国产精品一区专区| 在线一区亚洲| 日韩成人综合网| 一二美女精品欧洲| 99久久久久久久久| 91女厕偷拍女厕偷拍高清| 老子影院午夜伦不卡大全| 精品一区二区三区中文字幕| 丝袜亚洲另类欧美重口| 波多野结衣不卡| 久久女同互慰一区二区三区| 国产资源在线视频| 精品久久ai电影| 久久久久久成人精品| xxxx18国产| 亚洲免费观看高清完整版在线 | 国产一区二区三区小说| 亚洲天堂中文字幕在线观看| 美女福利精品视频| av免费观看在线| 亚洲精品免费视频| 污视频在线观看免费网站| 亚洲精品国产偷自在线观看| 成人a在线观看| 国产人成网在线播放va免费| 欧美喷潮久久久xxxxx| 日韩欧美视频第二区| 黄色在线网站噜噜噜| 亚洲精品国产电影| 六月丁香在线视频| av电影天堂一区二区在线| 黄色国产一级视频| 国产成人澳门| 欧美亚洲第一页| 黄色美女网站在线观看| 欧美亚洲综合色| 天堂av网手机版| 韩国三级中文字幕hd久久精品| 国产又黄又爽免费视频| 久久久久久亚洲精品美女| 欧美激情久久久久| 天天综合在线视频| 日韩欧美在线播放| 免费91在线观看| 国产一区二区视频在线播放| 久久精品无码中文字幕| 天海翼亚洲一区二区三区| 国产精品video| 国产在线高清视频| 亚洲国产精品国自产拍av秋霞| 色婷婷在线观看视频| 国产人成亚洲第一网站在线播放| av噜噜在线观看| 亚洲区国产区| 亚洲国产日韩美| a看欧美黄色女同性恋| 啪一啪鲁一鲁2019在线视频| aaa在线观看| 日韩手机在线导航| 日日摸天天添天天添破| 国产精品久久99| 色悠悠在线视频| 国产cdts系列另类在线观看| 91福利国产在线观看菠萝蜜| 成人激情久久| 欧美婷婷在线| 亚洲欧洲制服丝袜| 少妇性l交大片| 一区二区日韩欧美| 精品国产免费人成电影在线观... 精品国产免费久久久久久尖叫 | 欧美精品高清视频| 亚洲熟女www一区二区三区| 91麻豆免费看| 国产大片一区二区三区| 国产精品视频| 亚洲天堂第一区| 久草在线成人| 国产亚洲一区二区三区在线播放| 97欧美成人| 国内精品中文字幕| 免费av在线| 一本色道久久88亚洲综合88| 亚洲国产精品久久久久爰性色 | 99久久激情视频| 欧美日韩一视频区二区| 7878成人国产在线观看| 日本在线免费观看一区| 99精品在线免费观看| 欧美做受高潮1| 深夜国产在线播放| 中文字幕日韩在线观看| 午夜性色福利影院| 欧美一区二区精美| 在线观看中文字幕2021| 狠狠爱在线视频一区| 麻豆影视在线播放| 成人欧美一区二区三区| 69视频在线观看免费| 91视频免费观看| 日韩av无码一区二区三区不卡| 韩日av一区二区| 欧美一级特黄a| 日韩电影在线观看电影| 亚洲自偷自拍熟女另类| 影音先锋亚洲精品| 欧美黄网在线观看| 亚洲欧洲中文字幕| 正在播放亚洲| 欧美aaaaaaaaaaaa| 一个色的综合| 欧美xxxxx视频| 伊人精品久久久久7777| 日韩情爱电影在线观看| 日本在线观看一区二区三区| 精品国产乱码久久久| 久久综合婷婷综合| 天天操综合520| 久久涩涩网站| 亚洲欧美自偷自拍另类| 欧美xxav| 免费在线观看污污视频| 99久久综合狠狠综合久久aⅴ| 色综合电影网| 日韩在线视频精品| 一区二区三区四区在线视频| 欧美一区二区三| 亚洲欧美久久234| 欧美成人激情| 中文字幕一区二区三区乱码| 久久视频精品| 免费看污污视频| 欧美激情在线| 怡红院av亚洲一区二区三区h| 妖精视频成人观看www| 国产91在线免费| 免费视频一区二区三区在线观看| 免费黄色福利视频| 日日噜噜夜夜狠狠视频欧美人| 一本久道综合色婷婷五月| 日韩成人dvd| 日本超碰在线观看| 国产成人av福利| 成人免费无码大片a毛片| 久久综合狠狠综合久久综合88 | 浓精h攵女乱爱av| 激情五月激情综合网| 亚洲精品鲁一鲁一区二区三区| 成a人片国产精品| 实拍女处破www免费看| 中文字幕一区二区三区在线播放 | 制服丝袜亚洲精品中文字幕| 国产不卡精品视频| 日韩成人在线观看| 在线观看a视频| 欧美精品国产精品日韩精品| av电影一区| 91精品久久久久久久久青青 | 久久久水蜜桃| 久久激情电影| 久久av综合网| 免费在线视频一区| 91人妻一区二区| 国产亚洲va综合人人澡精品| 懂色av懂色av粉嫩av| 婷婷国产v国产偷v亚洲高清| 中文字幕有码视频| 精品国产亚洲一区二区三区在线观看| 手机亚洲第一页| 麻豆国产精品va在线观看不卡| 美女av在线免费看| 成人午夜激情免费视频| 先锋影音国产精品| 性做爰过程免费播放| 性伦欧美刺激片在线观看| 国产乱叫456| 久久色成人在线| 九九热精品在线观看| 欧美在线你懂得| 人妻少妇精品无码专区| 中文字幕日韩欧美精品在线观看| 国产盗摄一区二区| 国产精品一区久久| 日本成人a网站| 4444亚洲人成无码网在线观看| 日韩成人一级片| 国产偷人妻精品一区| 亚洲男人的天堂av| 国产偷人爽久久久久久老妇app | 无码精品一区二区三区在线播放| 国产精品久久精品日日| 无码aⅴ精品一区二区三区| 欧美mv日韩mv国产网站app| 日本中文字幕在线观看| 日韩免费不卡av| 国产福利资源一区| 波多野结衣激情| 麻豆高清免费国产一区| 欧美多人猛交狂配| 岛国av一区二区| 少妇一区二区三区四区| 欧美国产日韩在线| 国产日本亚洲| 蜜臀av.com| 精品一区二区三区免费观看| 免费黄色片网站| 色网站国产精品| 欧美人体大胆444www| 国产91精品久久久久久久| av成人资源网| 无码粉嫩虎白一线天在线观看| 国内外成人在线视频| 国产aaaaaaaaa| 欧美三区免费完整视频在线观看| 国产三级电影在线| 国产99久久久欧美黑人| 亚洲精品动态| 999香蕉视频| 国产亚洲一区二区三区四区| 中文字幕第四页| 亚洲日本aⅴ片在线观看香蕉| 小早川怜子影音先锋在线观看| 激情视频一区二区| 一本久道综合久久精品| 亚洲精品理论片| 色综合久久66| 风间由美一区| 国产色婷婷国产综合在线理论片a| 大色综合视频网站在线播放| 亚洲无吗一区二区三区| 国产精品视频一二三区| 国产精品久久久久久无人区| 日韩在线观看精品| 精品一区二区三区亚洲| 2019日韩中文字幕mv| 91亚洲精品一区二区乱码| 日日夜夜狠狠操| 中文字幕久久亚洲| av日韩在线免费观看| avav在线播放| 91视频你懂的| 中文字幕一区二区在线视频 | wwwav国产| 精品欧美乱码久久久久久| 国产粉嫩在线观看| 日韩伦理一区二区三区av在线| 麻豆91精品视频| 少妇aaaaa| 日韩成人性视频| 国产精品原创视频| 日本一区二区免费高清视频| 国产成人欧美日韩在线电影| 日韩黄色在线视频| 亚洲欧美综合图区| 亚洲高清国产拍精品26u| 免费网站在线观看视频| 久久人人爽爽爽人久久久| 一区二区美女视频| 久久久亚洲影院| 成人久久综合| 欧美做受高潮中文字幕| 色综合婷婷久久| 二区在线播放| 久久久久高清| 国产一区二区女| 岛国av中文字幕| 免费97视频在线精品国自产拍| 小说区图片区色综合区| 奇米视频888| 福利视频一区二区| 日本高清中文字幕在线| 国偷自产av一区二区三区小尤奈| 免费的国产精品| 日韩三级视频在线| 日韩一区二区三区国产| 神马日本精品| 国偷自产av一区二区三区麻豆| 在线精品视频一区二区三四| 成人在线高清免费|