You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS V1.6.6中函数参数传Index++不生效,Index+1却可行?

递归函数索引递增方式导致栈溢出的原因

这本质是JavaScript运算符执行逻辑的问题,和AngularJS版本无关:

  • 先说你踩坑的recursiveFunction(List, Index++);:
    JavaScript的后置++运算符是先返回变量当前值,再完成自增。也就是说,调用函数时,传给递归函数的参数是Index的原始值,等函数调用完成后,Index才会加1。这就导致每次递归都用同一个索引值,永远达不到终止条件,反复调用直到栈溢出。

  • 再看两种正确的写法:

    1. recursiveFunction(List, Index + 1);:这种是直接计算出Index加1后的新值,作为参数传递。变量Index本身不变,但每次递归都拿到递增后的正确索引,能正常推进递归流程。
    2. 先执行Index++;再调用函数:单独执行Index++时,变量会立刻完成自增,之后再把更新后的Index传给递归函数,自然每次索引都是递增的,递归能正常结束。

内容的提问来源于stack exchange,提问作者ianrose2k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:05:57