题目:
对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。
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]。
思路:
使用递归方法对数组进行处理
代码:
<script type="text/javascript">
function steamroller(arr) {
// I'm a steamroller, baby
var newarr = [];
function f(a) {
for (var i = 0; i < a.length; i++) {
if (Array.isArray(a[i]) == true) {
f(a[i]);
} else {
newarr.push(a[i]);
}
}
}
f(arr);
return newarr;
}
</script>