【发布时间】:2020-03-14 21:27:39
【问题描述】:
有人看到下面的带有 shift() 返回的 javascript 递归吗?即使是 3 次 shift() 数组仍然运行 'while 循环'
function combine(nums) {
while (nums.length) {
let r = nums.shift();
console.log(r, ':', nums);
combine(nums.slice(0));
}
}
combine([1,2,3])
--------------- return -----------
1 : [ 2, 3 ]
2 : [ 3 ]
3 : []
3 : []
2 : [ 3 ]
3 : []
3 : []
------------------------------------
【问题讨论】:
-
这是正确的,因为安迪标记为重复。我忘记添加 return combine(nums.slice(0));谢谢安迪
-
A
return将避免while继续下一次迭代。 -
我同意 Akshay 的回复
标签: javascript loops recursion while-loop shift