User Guide Cancel

StructReduce

 

Description

Iterates over every entry of the struct and calls the closure to work on the key value pair of the struct.

Returns

Any

Syntax

StructReduce(struct, function(result, key, value [,struct]), initialVal)
StructReduce(struct, function(result, key, value [,struct]), initialVal)
StructReduce(struct, function(result, key, value [,struct]), initialVal)

History

ColdFusion 11: Added this function.

Parameters

Parameter

Req/Opt

Default

Description

struct Required   The input struct.
function Required  

Closure or a function reference that will be called for each of the iteration. The arguments passed to the callback are

  • result: the result of the reduce operation after the previous iteration
  • key: key for the current iteration
  • value: the value for the current iteration
  • struct: a reference of the original struct
initialVal Optional   Initial value that will be used for the reduce operation. The type is any.

Example

<cfscript>
person=StructNew();
person = {fname="John", lname="Doe"};
ucaseStruct = structMap(person, function(key, value)
{
return ucase(value);
});
writeDump(ucaseStruct);
concatValues = structReduce(person, function(result, key, value)
{
result = result?:"";
result&= value & " ";
return result;
});
writeDump(concatValues);
</cfscript>
<cfscript> person=StructNew(); person = {fname="John", lname="Doe"}; ucaseStruct = structMap(person, function(key, value) { return ucase(value); }); writeDump(ucaseStruct); concatValues = structReduce(person, function(result, key, value) { result = result?:""; result&= value & " "; return result; }); writeDump(concatValues); </cfscript>
<cfscript>
       person=StructNew();
       person = {fname="John", lname="Doe"};

       ucaseStruct = structMap(person, function(key, value)
       {
             return ucase(value);
       });
       writeDump(ucaseStruct);

       concatValues = structReduce(person, function(result, key, value)
       {
             result = result?:"";
             result&= value & " ";
             return result;
       });

       writeDump(concatValues);
</cfscript>

Output

Using member function

<cfscript>
myStruct=StructNew();
myStruct={a=1,b=2,c=3,d=4,e=5};
myReduce=myStruct.reduce(function(result,key,value){
return result+value;
},10);
WriteDump(myReduce); // Returns 25
</cfscript>
<cfscript> myStruct=StructNew(); myStruct={a=1,b=2,c=3,d=4,e=5}; myReduce=myStruct.reduce(function(result,key,value){ return result+value; },10); WriteDump(myReduce); // Returns 25 </cfscript>
<cfscript>
       myStruct=StructNew();
       myStruct={a=1,b=2,c=3,d=4,e=5};
       myReduce=myStruct.reduce(function(result,key,value){
             return result+value;
       },10);
       WriteDump(myReduce); // Returns 25
</cfscript>

Get help faster and easier

New user?