2013-05-14 45 views
1

我有一些基於標記的語法可以在Railo中工作。ColdFusion - cfscript中的收集循環

<cfloop collection="#myArray#" item="j" index="i"></cfloop> 

以上允許我訪問索引'我'和項目本身,'j'。

我想要做的CFSCRIPT一樣的,所以我用:

for (i in myArray) {} 

然而,「我」給我的項目 ...我怎樣才能訪問指數價值?

作爲工作的時候,我不得不手動計數的指標,像這樣:

j = 1; 
for (i in myArray) { 
j++; 
} 

但這種感覺很髒。 cfscript的for語法是否可以作爲cfloop集合的真正替代方案?

我試過谷歌搜索這一切,但從來沒有得到任何體面的結果。有沒有辦法重寫我的循環,以便我也可以訪問索引?

謝謝, Mikey。

回答

1

這是不可能的在ColdFusion,恐怕,除了你正在使用的解決方法,或者只是使用索引for循環。

然而,在Railo,有這個(相當可怕的標籤/腳本語法混合):

<cfscript> 
    loop array=[5,4,3,2,1] index="i" item="v" { 
     writeOutput("[#i#][#v#]<br>"); 
    } 
</cfscript> 

所以基本上它是<cfloop>沒有尖括號。

+0

這真是太遺憾了!我希望在這種語法中會有一種優雅的方式,但我的猜測似乎是正確的。感謝你的回答。 – 2013-05-14 15:21:58

+0

NP。順便說一下,你使用的CFLOOP語法是* Railo only *。它在CF中不*有效。你可能想更新你的文字。 – 2013-05-14 15:23:58

+0

有謊言我的問題。我認爲Railo使用標籤實現(一種相當不錯的方式),但是覺得需要在腳本版本中遵守ACF。壞消息!我也編輯我的帖子來糾正我的錯誤陳述。 – 2013-05-14 15:32:00

1

在CF 10和Railo 4中,您可以使用Underscore.cfc library

_ = new Underscore();// instantiate the library 

_.each(myArray, function(item, index) { 
    // code here 
}); 

雖然就個人而言,我寧願使用的其他功能的方法之一,這樣的mapreduce,這取決於你想做什麼。

注意:我寫了Underscore.cfc

+0

這太酷了!謝謝。 – 2013-05-17 11:56:20