對嵌套的數組進行扁平化處理。你必須考慮到不一樣層級的嵌套。數組
steamroller([[["a"]], [["b"]]])
應該返回 ["a", "b"]。steamroller([1, [2], [3, [[4]]]])
應該返回 [1, 2, 3, 4]。steamroller([1, [], [3, [[4]]]])
應該返回 [1, 3, 4]。steamroller([1, {}, [3, [[4]]]])
應該返回 [1, {}, 3, 4]。分析數組元素要一層層剝離,就是一個遞歸的思想。code
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]]]]);