gpt4 book ai didi

arrays - 循环结构数组并输出特定的结构值?

转载 作者:行者123 更新时间:2023-12-01 23:07:29 28 4
gpt4 key购买 nike

我有一个结构数组,我应该在其中访问特定字段。这是我的数据示例:

array
1
struct
address_city Washington
address_state DC
array
2
struct
address_city New York
address_state NY
array
3
struct
address_city Miami
address_state FL

我有这个代码来循环数组,然后内部循环来迭代结构:

<cfloop from="1" to="#arrayLen(arrData)#" index="i">
<cfset data = arrData[i]>
<cfloop collection="#data#" item="key">
<cfoutput>#key#:#data[key]#<br></cfoutput>
</cfloop>
</cfloop>

上面的代码将产生以下输出:

address_city:Washington
address_state:DC
address_city:New York
address_state:NY
address_city:Miami
address_state:FL

相反,我只需要访问 address_state 值。我尝试过这样的事情:

<cfloop from="1" to="#arrayLen(arrData)#" index="i">
<cfset data = arrData[i]>
<cfloop collection="#data#" item="key">
<cfoutput>#data[key]['address_state']#<br></cfoutput>
</cfloop>
</cfloop>

然后我收到此错误消息:

Message     You have attempted to dereference a scalar variable of type class java.lang.String as a structure with members. 

有没有一种方法可以只输出数组中每个结构的一个字段?在 JavaScript 中迭代 JS 对象时,类似的事情也是可行的。示例:

for (var key in data) {
console.log(data[key]['address_state']);
}

如果有人知道在 ColdFusion 中实现此目的的方法,请告诉我。

最佳答案

有趣的是,有一种方法可以做到几乎与 JS 示例完全相同。

for (key in data) {
writeOutput( "Address State = " & key.address_state & "<br>");
}

https://trycf.com/gist/f0bd28bbf644912d320b10fdc5f526f4/acf?theme=monokai

您收到错误是因为您在不需要时引用了 data 数组。根据循环的性质,您已经在 data 中循环了 key。在您的脚本示例中,您不需要对数组进行双循环。

关于arrays - 循环结构数组并输出特定的结构值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53619090/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com