【发布时间】:2017-06-24 12:48:24
【问题描述】:
在我的以下代码中,如果我没有将 (var i = 0...) 放入 for 循环中,我会得到一个无限循环。
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]]]]);
谁能解释一下原因?
【问题讨论】:
-
类似problem。在这种情况下,循环提前终止而不是无限循环(但两个问题是相同的)。
-
全局变量ftw!始终定义变量。
-
感谢大家的快速回复。我将始终声明我的变量。
标签: javascript recursion infinite-loop