function isNumber(arr) {
var result = [];
if (arr.length > 1) {
if (typeof arr[0] === 'number') {
result.push(arr[0]);
arr.splice(0, 1);
isNumber(arr);
} else {
arr.splice(0, 1);
isNumber(arr);
}
} else {
console.log(result);
}
}
isNumber([1,'2','3',2]);
我試圖創建一個通過一個數組,如果第一項是一個數字,你會刪除它,推去功能它被稱爲結果數組。然後它再次調用自己,直到數組爲空。
它當前返回一個空數組,並且調試器顯示結果數組保持重置爲空數組。
我明白爲什麼發生這種情況,但我想弄清楚如何解決它。
每次調用,你鬆的結果,你不回來。 –
您必須將您的結果數組作爲參數傳遞。你'arr.length> 1'應該是'arr.lenght> 0' –
這個例子真正的問題是,它是沒有意義的使用遞歸此。一個簡單的for循環會很好。 –