題目
對嵌套的數組進行扁平化處理。你必須考慮到不同層級的嵌套。
提示
Array.isArray()
測試用例
-
應該傳回 ["a", "b"]。steamroller([[["a"]], [["b"]]])
-
應該傳回 [1, 2, 3, 4]。steamroller([1, [2], [3, [[4]]]])
-
應該傳回 [1, 3, 4]。steamroller([1, [], [3, [[4]]]])
-
應該傳回 [1, {}, 3, 4]。steamroller([1, {}, [3, [[4]]]])
分析思路
分析數組元素要一層層剝離,就是一個遞歸的思想。
代碼
function steamroller(arr) {
// I'm a steamroller, baby
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i]))
//steamroller(arr[i]);
newArr = newArr.concat(steamroller(arr[i]));
else
newArr.push(arr[i]);
}
return newArr;
}
steamroller([1, [2], [3, [[4]]]]);
轉載于:https://www.cnblogs.com/water-moon/p/6904709.html