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

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

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

join toString

該兩種方法會(huì)將數(shù)組元素的類(lèi)型轉(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"]

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

es6 flat

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

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

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

缺點(diǎn): 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]

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

相關(guān)文章

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

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

    下面小編就為大家?guī)?lái)一篇對(duì)存在JavaScript隱式類(lèi)型轉(zhuǎn)換的四種情況的總結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 阻止子元素繼承父元素事件具體思路及實(shí)現(xiàn)

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

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

    JS獲取圖片lowsrc屬性的方法

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

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

    下面小編就為大家?guī)?lái)一篇關(guān)于RequireJS的簡(jiǎn)單介紹即使用方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • 原生js實(shí)現(xiàn)俄羅斯方塊

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

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

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

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

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

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

    在IE下:float屬性會(huì)影響offsetTop的取值

    在IE下:float屬性會(huì)影響offsetTop的取值...
    2006-12-12
  • 詳解寫(xiě)好JS條件語(yǔ)句的5條守則

    詳解寫(xiě)好JS條件語(yǔ)句的5條守則

    這篇文章主要介紹了詳解寫(xiě)好JS條件語(yǔ)句的5條守則,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • JavaScript中通用的jquery動(dòng)畫(huà)滾屏實(shí)例

    JavaScript中通用的jquery動(dòng)畫(huà)滾屏實(shí)例

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

最新評(píng)論