構造体の配列を含むオブジェクトがあり、それを生成するコードはクエリをループし、クエリの各行からさまざまな値を取得して構造体に入力します。行が完了すると、それが配列に追加され、プロセスが開始されますまた:
<cfscript>
variables.x = 1;
variables.aArray = [];
// loop over my query
while(variables.x lte variables.qQuery.recordcount){
variables.stStruct = {};
variables.stStruct.nID = variables.qQuery.id[variables.x];
variables.stStruct.sText = variables.qQuery.text[variables.x];
//etc...
arrayAppend(variables.aArray,variables.stStruct);
variables.x++;
}
variables.oObject.setArray(variables.aArray);
</cfscript>
コードの後半で、ガイダンス用に nID のみを使用して、その配列内の項目に関する詳細を引き出すことができるようにしたいと考えています。その nID の配列位置がわかりません。これは、それを見つけようとする複雑な方法を使用することを意味します。
上記のコードを変更して、それに沿って位置の構造体を作成するというアイデアがありました。
<cfscript>
variables.x = 1;
variables.aArray = [];
variables.stTracker = {};
while...yadda
variables.stStruct = {};
yadda yadda
structInsert(variables.stTracker,"variables.qQuery.id[variables.x]","variables.x");
variables.x++;
while end
variables.oObject.setArray(variables.aArray);
variables.oObject.setTracker(variables.stTracker);
</cfscript>
これは、次のようなことができることを意味しますvariables.nPosition = structFindKey(variables.oObject.getTracker(),'88')[1].value;
。これはまだ非常に洗練されていないと感じており、私がやっていることよりもはるかに簡単にする何かが欠けているのではないかと思っています.
これを解決するためにJavaを使用するソリューションがあれば、私はとても幸せです。