cfloop在页面中插入"YES"

Dmi*_*try 3 coldfusion coldfusion-10 cfml

我正在使用创建一个新数组,cfloop并且出于某种原因,ColdFusion将"YES"一词注入到每个值的页面HTML中MyNewArray.因此,使用下面的代码我得到"是是是是是".我怎么能阻止它?

<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>
Run Code Online (Sandbox Code Playgroud)

Pet*_*ton 16

根据文档,ArrayAppend返回一个布尔值 - 即true/yes - 通过包装表达式输出#hashes#.

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

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

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

<cfset MyNewArray2 = duplicate(MyNewArray) />
<cfset ArrayDeleteAt(MyNewArray2,1) />
<cfset ArrayDeleteAt(MyNewArray2,6) />
Run Code Online (Sandbox Code Playgroud)

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

<cfset MyNewArray2 = ArraySlice(MyNewArray,2,5) />
Run Code Online (Sandbox Code Playgroud)

还要考虑DayOfWeekAsString是否对您正在做的任何事情都是一个有用的函数.

  • 回复:*作为旁注,更简单的方法同样的事情..*..或者因为你使用CF10,你可以利用[ArraySlice](https://learn.adobe.com/wiki/display/ coldfusionen/ArraySlice):即`<cfset myNewArray2 = ArraySlice(myNewArray,1,5)/>` (3认同)