题目:

对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。
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>