我正在使用 cfloop
创建一个新数组并且出于某种原因,ColdFusion 为 MyNewArray
中的每个值在页面 HTML 中注入(inject)了单词“YES”。 .因此,通过下面的代码,我得到了“YES YES YES YES 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>
最佳答案
根据 docs , ArrayAppend 返回一个 bool 值 - 即 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无论您在做什么,它都是一个有用的功能。
关于coldfusion - cfloop 将 "YES"插入页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18192243/