我在写一个递归函数,它需要一个嵌套数组的数组并将所有值放入一个数组中。现在它有时会起作用,但有时它不起作用。关于recusive函数的困惑
function steamrollArray(arr) {
var newArr = [];
var func = function(array){
for(i=0; i<array.length; i++){
if(Array.isArray(array[i])){
func(array[i]);
}
else {
newArr.push(array[i]);
}
}
};
func(arr);
return newArr;
}
当我运行steamrollArray([1, [2], [3, [[4]]]])
它的工作原理,但如果我跑steamrollArray([[1], [[2]], [3, [[4]]]]);
它不包括2出于某种原因,如果我跑我的steamrollArray([1, [], [3, [[4]]]])
浏览器崩溃。感谢您提供的任何见解!
我建议写入控制台并查看它崩溃的位置。你试过了吗? – Forklift
我做了第一个和第二个例子。第一个完成所有的事情,第二个例子看起来像一切都会起作用,但由于某种原因,它会跳过第二个循环。我甚至没有把浏览器崩溃的问题搞砸了。 – Alex