2014-10-08 8 views
0

我遍歷像這樣的迭代:ColdFusion的訂單上的字母

<cfloop condition="depFeedIterator.hasNext()"> 
    <cfset item=depFeedIterator.next()/> 
    <ul><li>#item.getValue('title')</li></ul> 
</cfloop> 

這將返回我所有的冠軍。但是我必須按照字母順序來組織這些標題(這已經在bean本身中完成了)。所以,我已經添加了這個:

<cfif #left(#item.getValue('title')#,1)# == "a"> 
    <li><h2>A</h2></li> 
     etc 

但如果我開始與A兩項冠軍,我得到這樣的:

一個
美國廣播公司

一個
AAB

而不是:

一個
美國廣播公司
AAC格式

我一直在玩這個了一會兒,想不出看着辦吧。我希望你們有一些建議

+0

'

  • #item.getValue('title')
'似乎缺少'#'。 – 2014-10-08 12:41:09

+0

@FishBelowtheIce對不起,錯過了那個,在我的代碼中是正確的。 – ErikMes 2014-10-08 12:41:48

+0

爲什麼如此多的'#'在' '? ('會更有效率。 – 2014-10-08 12:42:22

回答

6

你需要跟蹤的上一封信過了,只輸出標題在當前信是從以前的一個不同的,例如:

<cfset prevFirstLetter = ""> 
<cfloop condition="depFeedIterator.hasNext()"> 
    <cfset item=depFeedIterator.next()/> 
    <cfset itemTitle = item.getValue('title')> 
    <cfset currentFirstLetter = left(itemTitle,1)> 
    <cfif currentFirstLetter NEQ prevFirstLetter> 
     <li><h2>#currentFirstLetter#</h2></li> 
     <cfset prevFirstLetter = currentFirstLetter> 
    </cfif> 
    <!--- etc ---> 
</cfloop> 

您也可以從中受益閱讀「When to use pound-signs」,瞭解英鎊使用情況。

+0

非常聰明!想不到這一點。謝謝! – ErikMes 2014-10-08 12:41:10