Выходной идентификатор пользователя, когда структура хранится в массиве - PullRequest
3 голосов
/ 16 марта 2012

У меня есть следующий массив со структурой в каждом массиве (см. Этот jsfiddle для того, как массив выглядит).

Как мне зациклить массив, затем получить структуру внутри массива, чтобы вытащить идентификатор пользователя? Я продолжаю получать ошибки с вариантами, которые я пробовал. Наиболее распространенная ошибка, которую я получаю:

Must be a valid structure or COM object

Вот код, который я должен циклически обработать массив и структуру, которая генерирует ошибку выше (см. Этот jsfiddle для того, как массив выглядит).

<cfloop from="1" to="#ArrayLen(getTeamDetails)#" index="s">
    #s#) #getTeamDetails[s][uid]#<br>   
</cfloop> 

Марк попросил еще немного кода, поэтому я включил способ заполнения массива / структуры:

<cfoutput query="getTeam">
    <cfset getTeamDetails[getTeam.currentrow] = StructNew()>
    <cfset a = StructInsert(getTeamDetails[getTeam.currentrow], "firstname", getTeam.firstname, 1)>
    <cfset a = StructInsert(getTeamDetails[getTeam.currentrow], "lastname", getTeam.lastname, 1)>
    <cfset a = StructInsert(getTeamDetails[getTeam.currentrow], "uid", getTeam.uid, 1)>
</cfoutput>

1 Ответ

4 голосов
/ 16 марта 2012

Я думаю, что это должно работать:

<cfloop from="1" to="#ArrayLen(getTeamDetails)#" index="s">
    #s#) #getTeamDetails[s].uid#<br>   
</cfloop> 

Я создал ваш массив и структуру с нуля и перебрал его, чтобы получить доступ к structkey, к которому вам нужно получить доступ.

<cfscript>
ThisArray = arrayNew(1);
for (i = 1; i lte 3; i=i+1) {
    ThisStruct = structNew();
    ThisStruct.UID = "123";
    arrayAppend(ThisArray, ThisStruct);
}
for (i = 1; i lte arrayLen(ThisArray); i=i+1) {
    ThisOutput = "#i#) #ThisArray[i].UID# <br>";
    writeOutput(ThisOutput); 
}
</cfscript>
<cfdump var="#ThisArray#">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...