1

Railoで機能するタグベースの構文がいくつかあります。

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

上記により、インデックス「i」とアイテム自体「j」にアクセスできます。

私はcfscriptで同じことをしたいので、以下を使用しました:

for ( i in myArray) {}

ただし、「i」はアイテムを提供します...どうすればインデックス値にアクセスできますか?

回避策として、次のようにインデックスを手動でカウントする必要がありました。

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

しかし、これは汚れているように感じます。cfscript の for in 構文は、cfloop のコレクションの真の代替手段を可能にしますか?

このすべてを Google で検索してみましたが、まともな結果が得られませんでした。for in ループを書き直して、インデックスにもアクセスできるようにする方法はありますか?

ありがとう、マイキー。

4

3 に答える 3

1

残念ながら、 ColdFusionでは、現在使用している回避策、またはインデックス付きの for ループを使用する以外には不可能です。

ただし、Railo には次のようなものがあります (かなりひどいタグ/スクリプト ハイブリッド構文)。

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

したがって、基本的に<cfloop>は山括弧なしです。

于 2013-05-14T15:19:58.030 に答える