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。
【问题讨论】:
你真的是说if
和else 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:如何在每次调用时遍历数组的主要内容,如果未能解决你的问题,请参考以下文章