Javascript:如何在每次调用时遍历数组

Posted

技术标签:

【中文标题】Javascript:如何在每次调用时遍历数组【英文标题】:Javascript: how to loop through an array upon each call 【发布时间】:2012-08-05 03:26:18 【问题描述】:

我正在尝试创建一个函数,该函数在每次调用时都会选择数组中的下一个变量。

var nexttest=['abc','def','ghi'];
function nexttest() 
 if (nexttest = 'abc') 
  $('#result').load('url1.html');
 
 else if (nexttest = 'def') 
  $('#result').load('url2.html');
 
 else 
  $('#result').load('url3.html');
 

有没有办法让 nexttest() 第一次使用 abc,第二次使用 def,第三次使用 ghi。

【问题讨论】:

你真的是说ifelse if中只有一个=吗?? 虽然已经提供的任何一种方法都可以正常工作,如果您不需要维护 nexttest 数组,您可以在每次调用函数时弹出值。 ***.com/questions/1590247/… 【参考方案1】:

您将创建一个变量来跟踪数组的索引:

var index = 0;

然后,在函数中,您可以使用index 变量选择要与之交互的数组元素:

var interactWithThis = nexttest[index];

然后每次调用函数时递增索引:

index++;

【讨论】:

【参考方案2】:

我会做得更像

var tester = function()
    var i = 0;
    var tests = ['abc','def','ghi'];
    this.nexttest = function() 
        if (tests[i] == 'abc') $('#result').load('url1.html');
        else if (tests[i] == 'def') $('#result').load('url2.html'); 
        else  $('#result').load('url3.html');        
        i++;
    ;


var testing = new tester();

testing.nexttest();
testing.nexttest();
testing.nexttest();
testing.nexttest();

【讨论】:

基思,感谢您的建议。你知道我会如何从 iframe 调用这个函数吗?我一直在尝试 parent.testing.nexttest() 和 window.parent.testing.nexttest() 但都没有工作。 没关系。 parent.testing.nexttest() 工作正常,只是协议的不同把它搞砸了,因为我正在使用 SSL 查看我的网站并使用 http:// 加载 iframe ......哦,现在想通了(浪费时间完成。)

以上是关于Javascript:如何在每次调用时遍历数组的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 遍历数组

在 JavaScript 中循环遍历数组的最快方法是啥?

在 JavaScript 中循环遍历数组的最快方法是啥?

在javascript中循环遍历数组中的对象

javaScript for in循环遍历对象

JS -javascript 数组遍历的几种方式,数组或对象循环遍历的对比分析,性能使用合理使用