题目
对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套
要求
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]
代码
function steamroller(arr) {
// I'm a steamroller, baby
var newArr = [];
var temp;
function ifArray(arr) {
for(var i = 0; i < arr.length; i++) {
//若为数组则继续迭代
if(Array.isArray(arr[i])) {
temp = arr[i];
ifArray(temp);
}
else {
newArr.push(arr[i]);
}
}
}
ifArray(arr);
return newArr;
}
steamroller([1, [2], [3, [[4]]]]);