私の次のコードでは、forループに(var i = 0 ...)を入れないと無限ループになります。put(var i = 0)は無限ループを引き起こします
function steamrollArray(arr) {
var newArr = [];
for (i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
newArr = newArr.concat(steamrollArray(arr[i]));
} else {
newArr.push(arr[i]);
}
}
return newArr;
}
steamrollArray([1, [], [3, [[4]]]]);
誰でも説明できますか?
Simillar [**問題**](https://stackoverflow.com/questions/44731704/javascript-for-loopをvariabled -fori-0-i-3-i-terminates-too-early-without-using)である。この場合、ループは無限ループではなく早期に終了します(しかし、両方の問題は同じです)。 –
グローバル変数ftw!常に変数を定義してください。 – epascarello
すばらしい回答をいただき、ありがとうございました。私はいつも私の変数を宣言します。 –