JS JS之陣列扁平化

2021-09-19 01:29:01 字數 1777 閱讀 5177

最近發現,陣列扁平化在面試筆試**現平率很高~

1、陣列扁平化是指將乙個多維陣列變為一維陣列

2、陣列扁平化的五種方法

(1)reduce()

reduce()函式:接收乙個函式作為累加器,陣列中的每個值(從左到右)開始縮減,最終計算為乙個值;

語法:array.reduce(function(total, currentvalue, currentindex, arr), initialvalue)

total:必需。初始值, 或者計算結束後的返回值;

currentvalue:必需。當前元素;

currentindex:可選,當前元素的索引;

arr:可選,當前元素所屬的陣列;

initialvalue:可選,傳遞給函式的初始值;

function

flatten

(arr),[

]);}

arr1 =[1

,[2,

3,[4

,5]]

];var array =

flatten

(arr1)

;console.

log(array)

;//[1,2,3,4,5]

(2)tostring()和split方法結合使用

先將多維陣列通過tostring()方法轉化為字串,然後用逗號隔開,最後將每一項轉化為數值。

function

flatten

(arr))}

arr1 =[1

,[2,

3,[4

,5]]

];var array =

flatten

(arr1)

;console.

log(array)

;//[1,2,3,4,5]

(3)join() & split()結合使用

思路和tostring()的思路一樣

function

flatten

(arr))}

arr1 =[1

,[2,

3,[4

,5]]

];var array =

flatten

(arr1)

;console.

log(array)

;//[1,2,3,4,5]

(4)遞迴

遞迴的遍歷每一項,若為陣列則繼續遍歷,否則concat

function

flatten

(arr)

else})

;return res;

}arr1 =[1

,[2,

3,[4

,5]]

];var array =

flatten

(arr1)

;console.

log(array)

;//[1,2,3,4,5]

(5)es6的擴充套件運算子

es6的擴充套件運算子能將二維陣列變為一維

.

concat

(...[1

,2,3

,[4,

5]])

;// [1, 2, 3, 4, 5]

陣列扁平化

原陣列 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...