我正在使用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>
答案 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对于你正在做的事情是否有用。