【发布时间】:2015-08-15 10:26:43
【问题描述】:
我试图在保持顺序的同时展平嵌套数组,例如[[1, 2], 3, [4, [[5]]]] 应转换为 [1, 2, 3, 4, 5]。
我正在尝试使用递归来做到这一点,但下面的代码不起作用,我不明白为什么。我知道还有其他方法可以做到这一点,但我想知道这有什么问题。
function flatten (arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
flatten(arr);
} else {
newArr.push(arr[i]);
}
}
return newArr;
}
flatten([[1, 2], 3, [4, [[5]]]]);
谢谢
【问题讨论】:
-
什么是压路机功能?
-
抱歉,这是 freecodecamp 的挑战之一,我将名称更改为更具描述性的名称,但我忘记了。但这不是问题。
-
在this stackoverflow page中查看我的数组展平的递归版本
标签: javascript recursion