Pregunta

¿Hay un sistema incorporado en forma de unir dos matrices en ColdFusion, similar a array.concat() de JavaScript?

¿Fue útil?

Solución

En realidad no, pero supongo que lo que, sólo tiene que utilizar Java! :)

<cfset foo = [1,2,3]>
<cfset bar = [4,5,6]>
<cfset foo.addAll( bar )>

referencia: Colección de interfaz Java API .

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

Otros consejos

Si está utilizando Railo , puede utilizar ArrayMerge (Ej <cfset NewArray=ArrayMerge(FirstArray,SecondArray)>).

Es un poco tonto cómo ColdFusion pierde muchas de las funciones básicas que uno esperaría de un lenguaje de script. Aquí hay una que tenía que escribir rápidamente.

<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>

Usted puede fácilmente concatenar dos listas como esta:

<cfset combolist = ListAppend(lista,listb, ",")>

Así que, primero convertir sus órdenes de dos de las listas utilizando ArrayToList(). Combinar las dos listas con el ListAppend () y luego convertir la parte posterior respuesta a una matriz con ListToArray().

No sé qué tan eficiente es esto, pero el código es muy simple. Me gustaría utilizar el arrayAppend () pero estoy en ColdFusion 8.

Tomé esto desde Ben Nadel y lo utilizó para realizar el cifrado y hash. Trabajado como un encanto!

<cfscript>
    // Note: BinaryDecode/CharsetDecode return java arrays. 
    // Unlike CF arrays, java arrays are immutable, 
    // so the Java addAll(..) method to merge arrays won't work here. 
    // http://stackoverflow.com/a/10760835/104223

    // function to merge immutable arrays the long way
    function mergeArrays( array1, array2 ){
        var i = 0;
        var newArray = [];
        for (i = 1; i <= arrayLen(arguments.array1); i++) {
            arrayAppend(newArray, arguments.array1[i]);
        }
        for (i = 1; i <= arrayLen(arguments.array2); i++) {
            arrayAppend(newArray, arguments.array2[i]);
        }
        return newArray;
    }


    //convert the saltArray string and CustomerID string to UTF-8 byte arrays.
    saltByteArray = charsetDecode(salt, "utf-8");
    CustomerIdByteArray = charsetDecode(CustomerId, "utf-8");

    //create a new byte array consisting of the CustomerId bytes
    //appended with the salt bytes by merging the two binary arrays 
    //via custom function, mergeArrays
    mergedBytes = mergeArrays( CustomerIdByteArray, saltByteArray );
</cfscript>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top