成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js數(shù)組的扁平化

jemygraw / 1626人閱讀

摘要:數(shù)組扁平化方法遞歸循環(huán)數(shù)組元素,如果還是一個(gè)數(shù)組,就遞歸調(diào)用該方法注意和方法的返回值不同方法使用來(lái)簡(jiǎn)化方法的代碼方法方法轉(zhuǎn)成字符串方法把字符串切割成數(shù)組字符串拼接方法方法則當(dāng)其中一個(gè)返回,則最終結(jié)果為,相當(dāng)于邏輯運(yùn)算符。

數(shù)組扁平化
const a = [[1], [3, [4, 5, [6, 7]]], [8], [9, [2, 10]]]
方法1:遞歸

循環(huán)數(shù)組元素,如果還是一個(gè)數(shù)組,就遞歸調(diào)用該方法

function flatten1(arr){
    let res = [];
    for(var i=0;i
方法2:

使用reduce來(lái)簡(jiǎn)化方法1的代碼:

function flatten2(arr){
    return arr.reduce((prev, cur) => prev.concat(Array.isArray(cur) ? flatten2(cur) : cur),[])   
}
方法3:

toString方法轉(zhuǎn)成字符串,split方法把字符串切割成數(shù)組,字符串拼接方法

function flatten3(arr){
    return arr.toString().split(",").map(item=> +item)
}
方法4:

some則當(dāng)其中一個(gè)返回true,則最終結(jié)果為true, 相當(dāng)于邏輯運(yùn)算符||。

function flatten4(arr){
    while(arr.some(item => Array.isArray(item))){
        arr = [].concat(...arr);
    }
    return arr;
}
方法5:

every方法表示當(dāng)數(shù)組每個(gè)元素在判定函數(shù)中都返回true,則最終結(jié)果為true,相當(dāng)于邏輯運(yùn)算符 &&

function flatten5(arr) {
    while (!arr.every(item => typeof item === "number" && !isNaN(item))) {
        arr = [].concat(...arr);
        console.log(arr);
    }
    return arr;
}
console.log(...a)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99016.html

相關(guān)文章

  • JS數(shù)組平化去并除其中重復(fù)部分?jǐn)?shù)據(jù),最終得到一個(gè)升序且不重復(fù)數(shù)組

    摘要:題目已知如下數(shù)組編寫一個(gè)程序?qū)?shù)組扁平化去并除其中重復(fù)部分?jǐn)?shù)據(jù),最終得到一個(gè)升序且不重復(fù)的數(shù)組實(shí)現(xiàn)數(shù)組扁平化去重排序解析數(shù)組扁平化判斷數(shù)組子元素是否為數(shù)組是的話進(jìn)行遞歸否則把子元素變?yōu)閿?shù)組的執(zhí)行結(jié)果為的執(zhí)行結(jié)果為數(shù)組去重通過(guò)實(shí)現(xiàn) 題目: 已知如下數(shù)組:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, ...

    godruoyi 評(píng)論0 收藏0
  • JS數(shù)組專題1?? ? 數(shù)組平化

    一、什么是數(shù)組扁平化 扁平化,顧名思義就是減少?gòu)?fù)雜性裝飾,使其事物本身更簡(jiǎn)潔、簡(jiǎn)單,突出主題。 數(shù)組扁平化,對(duì)著上面意思套也知道了,就是將一個(gè)復(fù)雜的嵌套多層的數(shù)組,一層一層的轉(zhuǎn)化為層級(jí)較少或者只有一層的數(shù)組。 Ps: flatten 可以使數(shù)組扁平化,效果就會(huì)如下: const arr = [1, [2, [3, 4]]]; console.log(flatten(arr)); // [1, ...

    lieeps 評(píng)論0 收藏0
  • 展示JS前端面試數(shù)組平化手寫flat函數(shù)

      我們現(xiàn)在來(lái)說(shuō)說(shuō)怎么寫一下數(shù)組扁平化flat(),怎么樣?簡(jiǎn)單說(shuō)題目就是數(shù)組扁平化(也可以叫做手動(dòng)封裝flat()方法),如何寫好那?  按照不同的星級(jí)進(jìn)行打分: 五星打分制  滿分: ?????  題目實(shí)現(xiàn)扁平化的方法 封裝 flatten  題目描述:  有多級(jí)嵌套數(shù)組 :[1, [2, [3, [4, 5]]], 6]將其扁平化處理 輸出:[1,2,3,4,5,6]  什么是扁平化  定義...

    3403771864 評(píng)論0 收藏0
  • JS專題之數(shù)組展開

    摘要:根據(jù)需求的特點(diǎn),數(shù)組展開需要進(jìn)行迭代和遞歸?;卮鹞恼麻_頭的問(wèn)題將多重?cái)?shù)組轉(zhuǎn)化成單層數(shù)組的過(guò)程就是數(shù)組展開,也叫作數(shù)組扁平化一循環(huán)加遞歸最簡(jiǎn)單的思路循環(huán)中判斷,如果子元素是數(shù)組則遞歸。 前言 首先什么是數(shù)組展開? 假如現(xiàn)在有這樣一個(gè)需求:將后臺(tái)的一個(gè)多重 List 數(shù)據(jù),展開成一個(gè) List 后,并去重后排序; [a, b, [c, d], [[d],e], f] => [a, b, ...

    boredream 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<