arrays - कोल्ड फ्यूजन में दो एर्र्स को मिलाएं




coldfusion cfml (6)

CF10 +, का उपयोग करें

arrayAppend(array1, array2, true);

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

https://code.i-harness.com

क्या JavaScript के array.concat() के समान ColdFusion में दो सरणियों में शामिल होने के लिए एक अंतर्निहित तरीका है?


आप इस तरह से दो सूचियों को आसानी से प्राप्त कर सकते हैं:

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

तो, पहले ArrayToList() का उपयोग करके अपने दो सरणियों को सूचियों में ArrayToList() । ListAppend () के साथ दो सूचियों को मिलाएं और फिर जवाब को ListToArray() साथ एक सरणी में परिवर्तित करें।

मुझे नहीं पता कि यह कितना कुशल है, लेकिन कोड बहुत सरल है। मुझे arrayAppend () का उपयोग करना अच्छा लगेगा, लेकिन मैं ColdFusion 8 में हूं।


जावास्क्रिप्ट array.join (ओं) में सीमांकक द्वारा अलग किए गए सरणी के सभी तत्वों में से एक स्ट्रिंग बनाता है। ColdFusion में इसी तरह का एक कार्य ArrayToList फ़ंक्शन है। जहाँ तक किसी अन्य के लिए एक सरणी जोड़कर मुझे विश्वास नहीं है कि उसके लिए एक CF फ़ंक्शन है। सीएफ में एरे कार्यों की सूची देखने के लिए http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=functions-pt0_03.html#3473387 देखें। या कुछ इस तरह का प्रयास करें:

<cfscript>
   for(index = 1; index LTE ArrayLen(array2); i = i + 1) {
      ArrayAppend(array1, array2[i]);
  }
</cfscript>

मैंने इसे बेन नडेल से लिया और इसका इस्तेमाल एन्क्रिप्शन और हैशिंग करने के लिए किया। एक जादू की तरह काम किया!

<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://.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>


सीएफ 10 या रेलो 4 में, आप एक नया सरणी प्राप्त करने के लिए अंडरस्कोर (एफसीएससी) लाइब्रेरी के कॉन्कैट () फ़ंक्शन का उपयोग कर सकते हैं जो दो अन्य सरणियों (मौजूदा सरणियों को संशोधित किए बिना) का एक संयोजन है। उदाहरण cfscript:

newArray = _.concat([1], [2]);

परिणाम:

// newArray == [1, 2]

नया एरे पाने के लिए इस विधि का उपयोग करना एक नया एरे बनाने और उस पर दो बार ArrayAppend को कॉल करने की तुलना में थोड़ा क्लीनर है।

(डिस्क्लेमर: मैंने अंडरस्कोर लिखी। एफसीसी)







cfml