gpt4 book ai didi

javascript - 使用 javascript/Python 的递归调用方法中的项目序列(除了语法之外的问题相同)

转载 作者:行者123 更新时间:2023-12-03 07:53:58 26 4
gpt4 key购买 nike

使用递归方法让我了解它们如何从数组中弹出以及它们如何在控制台日志中显示的顺序,任何人都可以帮助我理解它,下面给定的数组将在序列 11 中弹出, 21, 13, 14 但是递归调用后的警报将按顺序显示值, 14, 13, 21, 11 ?提前致谢

var arr = [11, 21, 13, 14]

function reverse(arr){
alert('in method')
if(arr.length > 0){
var item = arr.splice(0, 1);
alert("item before recursive call " + item)
reverse(arr)
alert("item after recursive call " + item)
}
}

reverse(arr)

最佳答案

这是由于尾调用递归(或尾端递归)导致的,item 的值保存在调用堆栈上。装配中没有尾部调用:

 `foo:
call B
call A
ret

尾部调用消除用单个跳转指令替换最后两行

foo:
call B
jmp A

有关更多信息,您可以使用此链接 http://www.sitepoint.com/recursion-functional-javascript/ ``

关于javascript - 使用 javascript/Python 的递归调用方法中的项目序列(除了语法之外的问题相同),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34877986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com