我在寫一個遞歸函數,它需要一個嵌套數組的數組並將所有值放入一個數組中。現在它有時會起作用,但有時它不起作用。關於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