欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javscript 數(shù)組扁平化的實現(xiàn)

 更新時間:2020年02月03日 10:02:56   作者:我們不動  
這篇文章主要介紹了javscript 數(shù)組扁平化的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

join toString

該兩種方法會將數(shù)組元素的類型轉(zhuǎn)換為字符串

var arr = [1, [2, [3, [4, 5]]], 6];
console.log(arr.join()); //1,2,3,4,5,6
console.log(arr.toString()); //1,2,3,4,5,6

var flatArr = arr.join().split(','); // ["1", "2", "3", "4", "5", "6"]
var flatArr = arr.toString().split(',');// ["1", "2", "3", "4", "5", "6"]

缺點: 轉(zhuǎn)換為一維數(shù)組后數(shù)組元素轉(zhuǎn)換為字符串,需要重新轉(zhuǎn)換數(shù)組元素為Number類型

es6 flat

Array.prototype.flat()用于將嵌套的數(shù)組“拉平”,變成一維的數(shù)組。該方法返回一個新數(shù)組,對原數(shù)據(jù)沒有影響
flat()默認只會“拉平”一層,如果想要“拉平”多層的嵌套數(shù)組,可以將flat()方法的參數(shù)寫成一個整數(shù),表示想要拉平的層數(shù),默認為1。

如果不管有多少層嵌套,都要轉(zhuǎn)成一維數(shù)組,可以用Infinity關(guān)鍵字作為參數(shù)。

arr.flat(Infinity); // [1, 2, 3, 4, 5, 6]

缺點: flat 方法的兼容需要考慮下

reduce 遞歸遍歷

function flatten(arr) { 
  return arr.reduce((acc, cur)=> { // 遇到嵌套就遞歸
    return acc.concat(Array.isArray(cur) ? 
    flatten(cur) : cur);  
  }, []); 
}
console.log(flatten(arr)); // [1, 2, 3, 4, 5, 6]

遞歸遍歷

function flatten(arr) {

  while (arr.some(item => Array.isArray(item))) {
    arr = [].concat(...arr);
  }

  return arr;
}

console.log(flatten(arr)); // [1, 2, 3, 4, 5, 6]

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 對存在JavaScript隱式類型轉(zhuǎn)換的四種情況的總結(jié)(必看篇)

    對存在JavaScript隱式類型轉(zhuǎn)換的四種情況的總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄獙Υ嬖贘avaScript隱式類型轉(zhuǎn)換的四種情況的總結(jié)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 阻止子元素繼承父元素事件具體思路及實現(xiàn)

    阻止子元素繼承父元素事件具體思路及實現(xiàn)

    想要阻止點擊#p_cont區(qū)域時觸發(fā)a事件,需要在#p_cont區(qū)域內(nèi)加入阻止事件冒泡的代碼,具體實現(xiàn)祥看本文,希望對你有所幫助
    2013-05-05
  • JS獲取圖片lowsrc屬性的方法

    JS獲取圖片lowsrc屬性的方法

    這篇文章主要介紹了JS獲取圖片lowsrc屬性的方法,涉及javascript操作網(wǎng)頁圖片屬性的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • 關(guān)于RequireJS的簡單介紹即使用方法

    關(guān)于RequireJS的簡單介紹即使用方法

    下面小編就為大家?guī)硪黄P(guān)于RequireJS的簡單介紹即使用方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • 原生js實現(xiàn)俄羅斯方塊

    原生js實現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細介紹了原生js實現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • ES6中的WeakMap和WeakSet特性和用途詳解

    ES6中的WeakMap和WeakSet特性和用途詳解

    在JavaScript的ES6版本中,引入了WeakMap和WeakSet這兩種新的數(shù)據(jù)結(jié)構(gòu),與Map和Set相比,它們有一些特殊的特點和用途,使它們在處理內(nèi)存泄漏問題、管理對象私有數(shù)據(jù)、處理對象的唯一性等場景中有顯著的優(yōu)勢,本文將深入探討WeakMap和WeakSet的特性和用途,一起看看吧
    2023-12-12
  • 游戲開發(fā)中如何使用CocosCreator進行音效處理

    游戲開發(fā)中如何使用CocosCreator進行音效處理

    這篇文章主要介紹了游戲開發(fā)中如何使用CocosCreator進行音效處理,并對音效組件進行封裝,方便以后使用,同學(xué)們看完之后,一定要親手實驗一下
    2021-04-04
  • 在IE下:float屬性會影響offsetTop的取值

    在IE下:float屬性會影響offsetTop的取值

    在IE下:float屬性會影響offsetTop的取值...
    2006-12-12
  • 詳解寫好JS條件語句的5條守則

    詳解寫好JS條件語句的5條守則

    這篇文章主要介紹了詳解寫好JS條件語句的5條守則,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • JavaScript中通用的jquery動畫滾屏實例

    JavaScript中通用的jquery動畫滾屏實例

    這篇文章主要介紹了JavaScript中通用的jquery動畫滾屏實例,本文通過實際代碼來詳解實現(xiàn)方法,需要的朋友可以參考一下
    2022-07-07

最新評論