javascript陣列扁平化三種寫法

2021-09-12 17:23:04 字數 726 閱讀 5438

陣列扁平化是指將乙個多重巢狀的陣列變為一維陣列:

let arr = [1,[[2,2],1],3,[4,5,[6,7]]]; // =>[ 1, 2, 2, 1, 3, 4, 5, 6, 7 ]
如何實現呢?這裡有三個思路:

1. 利用reduce函式:

return this.reduce((total, val) =>

array.isarray(val) ?

// 如果是陣列,遞迴,然後再concat

total.concat(val.flatten()) :

// 不是陣列,直接concat

// 此處需要給reduce函式傳個初始的陣列

total.concat(val),)

2. string.prototype.replace+json.parse +json.stringfy

return json.parse(`[$]`)
過濾掉陣列的全部方框,然後再外面加上一層,最後轉為陣列

3.array.prototype.tostring+split+map

return this.tostring().split(",").map((v)=>+v)
tostring會呼叫陣列自身的tostring方法.預設過濾掉所有的方框,最後連線起來轉為數字就可以了

陣列扁平化

原陣列 const arr 1,2,3,4 5,6,7,8 9 希望輸出 1,2,3,4,5,6,7,8,9 方法一 遞迴 function arrdelayering arr else return newarr let newarr arrdelayering arr 1,2,3,4,5,6,7...

陣列扁平化

今天看到了陣列扁平化處理,猶記得之前面試被問到過,下面介紹一下陣列扁平化處理的幾種形式 題目要求 將陣列 arr 1,2,3,4,5,6,7,8,9 轉化為 1,2,3,4,5,6,7,8,9 1 遞迴 var arr 1,2,3,4,5,6,7,8,9 方法一 遞迴 function flatfu...

扁平化陣列

第一次遇到陣列扁平化已經是在3k遊戲的筆試題裡,當時是用了遞迴的方法。因為對一些陣列方法,字串方法十分的不熟練 扁平化陣列的核心都是,遍歷陣列元素,遇到陣列就拆,不是陣列就加進去。var arr 1,2,3,4,5 console.log bianpinghua arr tostring split...