Coldfusion を使用して、配列に数値 (2) を掛ける必要があります。
例: myArray = [1,2,3,4]
各要素に数値 2 を掛けます
そのための map メソッドがあることは知っていますが、Coldfusion でどのように機能するかはわかりませんでした。これを行う機能はありますか?または、このためにカスタム関数/メソッドを作成する必要がありますか?
Coldfusion を使用して、配列に数値 (2) を掛ける必要があります。
例: myArray = [1,2,3,4]
各要素に数値 2 を掛けます
そのための map メソッドがあることは知っていますが、Coldfusion でどのように機能するかはわかりませんでした。これを行う機能はありますか?または、このためにカスタム関数/メソッドを作成する必要がありますか?
ColdFusion 10 を使用している場合は、次を使用できますarrayEach()
。
<cfscript>
original = [1,2,3,4];
multiplied = [];
arrayEach(original, function(e){
arrayAppend(multiplied, e * 2);
});
writeDump(var=[original, multiplied]);
</cfscript>
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を書きました
独自の関数を作成する必要があります。あなたはすでにそれを行う方法を知っているように思えますが、それが役立つ場合に備えて、私はそれを実装する方法を次に示します。
<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>