1

Coldfusion を使用して、配列に数値 (2) を掛ける必要があります。

例: myArray = [1,2,3,4]

各要素に数値 2 を掛けます

そのための map メソッドがあることは知っていますが、Coldfusion でどのように機能するかはわかりませんでした。これを行う機能はありますか?または、このためにカスタム関数/メソッドを作成する必要がありますか?

4

4 に答える 4

4

ColdFusion 10 を使用している場合は、次を使用できますarrayEach()

<cfscript>
original = [1,2,3,4];
multiplied = [];
arrayEach(original, function(e){
    arrayAppend(multiplied, e * 2);
});

writeDump(var=[original, multiplied]);
</cfscript>
于 2013-11-05T22:08:27.687 に答える
2

map 関数は CF 10 または Railo 4 には存在しませんが、Underscore.cfc ライブラリのmap 関数を使用できます。

_ = new Underscore(); // init library

result = _.map([1, 2, 3, 4], function(val) {
   return val * 2;
});

注:Underscore.cfcを書きました

于 2013-11-06T01:24:17.043 に答える
0

独自の関数を作成する必要があります。あなたはすでにそれを行う方法を知っているように思えますが、それが役立つ場合に備えて、私はそれを実装する方法を次に示します。

<cffunction name="ArrayMultiply" >
    <cfargument name="SourceArray" type="array" >
    <cfargument name="Factor" type="numeric" >
    <cfset NewArray = ArrayNew(1) >
    <cfloop index="i" from="1" to="#ArrayLen(ARGUMENTS.SourceArray)#" >
        <cfset NewArray[i] = ARGUMENTS.SourceArray[i] * ARGUMENTS.Factor >
    </cfloop>
    <cfreturn NewArray >
</cffunction>

<cfset MyArray = ArrayNew(1) >
<cfset MyArray[1] = 1 >
<cfset MyArray[2] = 2 >
<cfset MyArray[3] = 3 >
<cfset MyArray[4] = 4 >

<cfset MultipliedArray = ArrayMultiply( MyArray, 2 ) >

<cfoutput>
    <p>[ #MultipliedArray[1]#, #MultipliedArray[2]#, #MultipliedArray[3]#, #MultipliedArray[4]# ]</p>
</cfoutput>
于 2013-11-05T21:29:21.427 に答える