最近發現,陣列扁平化在面試筆試**現平率很高~
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...