在ColdFusion中加入两个数组

Yis*_*oel 35 arrays coldfusion cfml

是否有一种内置方式可以在ColdFusion中连接两个数组,类似于JavaScript array.concat()

Hen*_*nry 48

不是,但猜猜是什么,只是使用Java!:)

<cfset foo = [1,2,3]>
<cfset bar = [4,5,6]>
<cfset foo.addAll( bar )>
Run Code Online (Sandbox Code Playgroud)

reference:Java的Collection Interface API.

来源:http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/merging-two-arrays-267

  • 奇怪的是,底层Java方法并不总是按预期工作.我还没弄清楚到底是什么时候以及为什么.我经常使用Java方法来删除重复项,连接和排序数组,我记得有时它根据你创建数组的方式不起作用,你在调用Java方法之前执行哪些操作等等.所以要注意! (2认同)
  • 当然,如果您对某些事情不确定,请始终采用更安全且经过验证的方式. (2认同)

Hen*_*nry 46

CF10 +,使用

arrayAppend(array1, array2, true);
Run Code Online (Sandbox Code Playgroud)

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-ab/arrayappend.html

  • +1,令人印象深刻的是你记得这个问题,并在两年后回来改善它. (9认同)
  • 迟到总比不到好.:) (3认同)

Ger*_*der 8

如果您使用的是Railo,则可以使用ArrayMerge(例如<cfset NewArray=ArrayMerge(FirstArray,SecondArray)>).

  • 我已经加入到Adobe的ColdFusion的Bug跟踪截至http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=83397功能要求.投票吧!:) (2认同)

noj*_*noj 7

有点愚蠢的是,coldfusion错过了人们对脚本语言所期望的许多基本功能.这是我必须快速写的一个.

<cffunction name="mergeArrays" returntype="array" >
    <cfargument name="array1" type="array" required="true" >
    <cfargument name="array2" type="array" required="true" >

    <cfset arrayResult = arrayNew(1) >
    <cfloop array="#array1#" index="elem">
        <cfset arrayAppend(arrayResult,elem) >
    </cfloop>

    <cfloop array="#array2#" index="elem">
        <cfset arrayAppend(arrayResult,elem) >
    </cfloop>

    <cfreturn arrayResult>
</cffunction>
Run Code Online (Sandbox Code Playgroud)