Javascript 将for循环转换为递归函数

Javascript 将for循环转换为递归函数,javascript,for-loop,recursion,Javascript,For Loop,Recursion,我有一个for循环,我想把它转换成一个递归函数 我有一个提示,应该为每个项目弹出,并在进入列表中的下一个项目之前被驳回。这种行为似乎不适用于正常的for循环。循环在提示显示之前结束,然后仅显示一个提示,即使列表中有多个项目本应显示提示 (我不完全确定它是否能与递归函数一起工作,但从我的阅读来看,它似乎很有希望。如果我在这方面错了,那么进行转换就没有意义了。) 我一直在看其他的例子,但我似乎不知道它们到底是如何工作的 这是我的原始循环: for(var i = 0;i < items.get

我有一个for循环,我想把它转换成一个递归函数

我有一个提示,应该为每个项目弹出,并在进入列表中的下一个项目之前被驳回。这种行为似乎不适用于正常的for循环。循环在提示显示之前结束,然后仅显示一个提示,即使列表中有多个项目本应显示提示

(我不完全确定它是否能与递归函数一起工作,但从我的阅读来看,它似乎很有希望。如果我在这方面错了,那么进行转换就没有意义了。)

我一直在看其他的例子,但我似乎不知道它们到底是如何工作的

这是我的原始循环:

for(var i = 0;i < items.get_count();i++) {
        var item = items.getItemAtIndex(i);

            //Is the item we're looking at in need of approval?
            if (item.get_item("_ModerationStatus") === 2)
            {
                //Yes, prompt for approval. (code for prompt goes here.)
                //Wait until prompt has received a response before going on next list item. 
            }

            else
            {
                //No, do nothing.
            }
        }   
for(var i=0;i
我的尝试看起来有点悲伤。我真的不确定接下来该怎么办:

function recursiveCheckRequests(i)
        {
            if (i < items.get_count())
            {
                function checkRequest(items, )
                //???
            }

        }
        recursiveCheckRequests(0);
函数递归检查请求(i)
{
如果(i
必须从函数内部调用函数

function recursiveCheckRequests(i) {
    var item = items.getItemAtIndex(i);
    //Is the item we're looking at in need of approval?
    if (item.get_item("_ModerationStatus") === 2) {
        //Yes, prompt for approval. (code for prompt goes here.)
        //Wait until prompt has received a response before going on next list item.
    }
    if (i + 1 < items.get_count()) {
        recursiveCheckRequests(i + 1);
    }
}
recursiveCheckRequests(0);
函数递归检查请求(i){
var item=items.getItemAtIndex(i);
//我们正在查看的项目是否需要批准?
if(item.get_item(“_-ModerationStatus”)==2){
//是,提示批准。(此处显示提示代码。)
//在继续下一个列表项之前,请等待提示符收到响应。
}
如果(i+1
这就是我要做的

   function recursiveCheckRequests(pos,arr,length)
    {
        if (pos === length){
             return true;
         }

            //do something here with the array
         return recursiveCheckRequests(pos+1,length)
   }
    recursiveCheckRequests(0,array,array.length);

这样,函数完全独立于要传递的数组,并且您可以指定要执行的迭代限制。

您的
项。get\u项(“\u适度状态”)
本身可能不是整数。尝试检查
==2
==“2”
上部代码块工作正常。(当我在
if
语句的处理程序中放置警报框时,框会按预期显示。)因此我认为这不是问题。递归版本似乎无法解决弹出提示行为不符合预期的问题,因此我必须找到另一种解决方案。是的,这非常有效。如果仍然有项目,它会不断调用自己,如果没有,它会退出。递归仍然有点让人困惑,但对我来说这是有道理的!