所以我使用for in循环遍历一个结构数组
for(item in array) {
processStruct(item)
}
非常简单,我要做的是获取for in循环中的当前索引并将其传递给函数:processStruct(item, index)
。我知道我可以使用常规for循环执行此操作,也可以使用标记版本<cfloop>
<cfloop array="#myArray#" index="i">
#i#
<cfloop>
答案 0 :(得分:2)
不,你在for ... in循环中没有索引。只需设置自己的索引:
var idx = 1;
for( item in struct ){
processStruct( item, idx );
idx++;
}
答案 1 :(得分:2)
标签变体<cfloop>
提供以ColdFusion 2016(或Railo / Lucee)开头的项目和索引。
<cfset x = [ "a", "b", "c" ]>
<cfloop array="#x#" index="idx" item="it">
<cfoutput>#idx#:#it#</cfoutput>
</cfloop>
<!--- returns 1:a 2:b 3:c --->
2016年之前的所有ColdFusion版本都没有,因此您必须自己完成:
<cfset x = [ "a", "b", "c" ]>
<cfset idx = 1>
<cfloop array="#x#" index="it">
<cfoutput>#idx#:#it#</cfoutput>
<cfset idx++>
</cfloop>
<!--- returns 1:a 2:b 3:c --->
脚本变体不支持它,很可能永远不会支持它。 Java's Iterator interface也没有提供。
答案 2 :(得分:1)
从CF11开始,您可以使用成员函数。这样你就可以访问元素和索引:
myArray = ["a", "b", "c"];
// By arrayEach() member function CF11+
myArray.each(function(element, index) {
writeOuput(element & " : " & index);
});
答案 3 :(得分:0)
试试这个(我的数组索引):
var arr =JSON.parse("[[[-74.026675, 40.683935],[-74.026675, 40.877483],[-73.910408, 40.877483],[-73.910408, 40.683935]]]");