在并行列表中查找匹配项

时间:2012-03-20 14:28:34

标签: coldfusion

<cfset stateList = "Alabama,Alaska,Arizona, ..., Wyoming">
<cfset stateAbbrList = "AL,AK,AR, ..., WY">

<cfset stateAbbr = #ListGetAt("stateAbbrList",ListFind("stateList",form.state))#>

当form.state是Alabama时,我希望stateAbbrList为AL。但相反,我得到一个错误,说ListGetAt返回零。

我做错了什么?

1 个答案:

答案 0 :(得分:5)

你需要从变量名称周围取引号;如果你使用引号,那么你需要用#符号包装。

<cfset stateAbbr = ListGetAt(stateAbbrList, ListFind(stateList, form.state)) />

OR

<cfset stateAbbr = ListGetAt("#stateAbbrList#", ListFind("#stateList#", form.state)) />

我要补充一点,我认为这不是一个好方法。更好的方法是使用struct或创建查询。

<cfset stateStruct = { "AL" = "Alamaba", ..., "WY" = "Wyoming" } />