autohotkey如何循环遍历数组

时间:2015-02-18 21:05:03

标签: autohotkey

我主要是一名javascript开发人员,而且我开始使用authotkey。我猜测是否有更好的方式来循环数组而不是我使用的方式。基本上是这样的:

cycle(value,maxValue){
 value += 1
 if value not between 1 and %maxValue%
    value :=1
 return value
}

然后我像这样使用它:

variable := cycle(variable,array.MaxIndex())

似乎有点简陋。还有其他方式吗?

编辑

我看到我的描述不清楚。我想要的是以循环方式从数组中获取变量:当你要求下一个值并且你已经在最后一个值时,从头开始重新开始。

2 个答案:

答案 0 :(得分:1)

听起来你需要的是for-loop

示例:

colors := Object("red", 0xFF0000, "blue", 0x0000FF, "green", 0x00FF00)
for key, value in colors
    s .= key "=" value "`n"
MsgBox % s

修改

根据您的评论,这可能更符合您的需求

index := 0
maxValue := 10

f3::
tooltip % index := cycle(index, maxValue)
return

cycle(index, maxValue)
{
    return index := mod(index + 1, maxvalue)
} 

希望有所帮助

答案 1 :(得分:0)

因为blackholyman所做的是正确的,所以它并不针对数组。 这是一种现在我知道它有效的方法:

i:=0,somearr:= ["bla","morebla","bla bla"]
;-- do whatever stuff here
somearr[i:=i>1?--i:somearr.MaxIndex()]