如果在length()上使用associative array函数,它将返回数组中使用的“最大索引”。因此,如果您有任何非整数的键,则length()不会返回数组中实际的元素数。 (这也可能由于其他原因而发生。)
是否有更有用的length()版本用于查找关联数组的长度?
或者我是否需要实际循环并计算每个元素?我不知道如果事先不知道所有可能的钥匙我会怎么做。
答案 0 :(得分:5)
如果你有一个平面数组,那么Array.MaxIndex()
将返回索引中的最大整数。但是,这并不总是最好的,因为AutoHotKey将允许您拥有一个第一个索引不是1的数组,因此MaxIndex()
可能会产生误导。
更糟糕的是,如果您的对象是索引可能包含字符串的关联哈希表,那么MaxIndex()
将返回null。
所以最重要的是计算它们。
DesiredDroids := object()
DesiredDroids["C3P0"] := "Gold"
DesiredDroids["R2D2"] := "Blue&White"
count :=0
for key, value in DesiredDroids
count++
MsgBox, % "We're looking for " . count . " droid" . ( count=1 ? "" : "s" ) . "."
<强>输出强>
We're looking for 2 droids.