【发布时间】:2019-11-12 15:25:47
【问题描述】:
let data = [1, 2, 3]
let sorted = []
let push = function(i) {
while(i<data.length) {
sorted.push(data[i])
push(i + 1)
}
}
push(0)
大家好,
我正在编写一些基本的递归,但它似乎没有退出。很抱歉这个基本问题,但我希望有人能解释一下。
预期行为:模仿 for 循环 - 遍历数组并推送到新数组。当我们到达i == data.length时退出
实际行为:运行 0、1、2,然后运行 2 直到堆栈溢出。
Codefiddle:https://jsfiddle.net/t579jbog/
【问题讨论】:
-
您的
while循环永远不会改变i的值 -
你应该使用
if而不是while
标签: javascript arrays function recursion iteration