数组平铺算法挑战
问题:
对嵌套的数组进行平铺嵌套数组。你必须考虑到不同层级的嵌套。
要求:
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) {
let result = [];
function steam(ifArr) {
// I'm a steamroller, baby
if (Array.isArray(ifArr)) {
return ifArr.forEach(function (val){
return steam(val);
});
}
else {
result.push(ifArr);
}
}
steam(arr);
return result;
}
steamroller([1, [2], [3, [[4]]]]);