cfloop在页面中插入“YES”

时间:2013-08-12 16:38:41

标签: coldfusion coldfusion-10 cfml

我正在使用cfloop创建一个新数组,由于某种原因,ColdFusion会在页面HTML中为MyNewArray中的每个值注入单词“YES”。因此,使用下面的代码我得到“是是是是是”。我怎么能阻止它?

<cfset MyNewArray = ArrayNew(1)>
<cfset MyNewArray2 = ArrayNew(1)>

<cfset MyNewArray[1] = "Sunday">
<cfset MyNewArray[2] = "Monday">
<cfset MyNewArray[3] = "Tuesday">
<cfset MyNewArray[4] = "Wednesday">
<cfset MyNewArray[5] = "Thursday">
<cfset MyNewArray[6] = "Friday">
<cfset MyNewArray[7] = "Saturday">

<cfloop from="2" to="6" index="i">
    <cfoutput>#ArrayAppend(MyNewArray2, MyNewArray[i])#</cfoutput>
</cfloop>

1 个答案:

答案 0 :(得分:16)

根据docs,ArrayAppend返回一个布尔值 - 即true / yes - 通过将表达式包装在#hashes#中来输出。

您不需要输出(或者确实对结果做任何事情),您可以这样做:

<cfloop from="2" to="6" index="i">
    <cfset ArrayAppend(MyNewArray2, MyNewArray[i]) />
</cfloop>

作为旁注,与代码相同的更简单方法是使用duplicate复制数组,然后使用ArrayDeleteAt删除第一个值。

<cfset MyNewArray2 = duplicate(MyNewArray) />
<cfset ArrayDeleteAt(MyNewArray2,1) />
<cfset ArrayDeleteAt(MyNewArray2,6) />

或者,正如Leigh在评论中指出的那样,更简单的是将这三行转换为单个ArraySlice电话:

<cfset MyNewArray2 = ArraySlice(MyNewArray,2,5) />

还要考虑DayOfWeekAsString对于你正在做的事情是否有用。