Whatever message this page gives is out now! Go check it out!

StructSome

Last update:
May 18, 2026
Note:
You can also set the maximum thread count in ColdFusion Administrator. Click Server Settings > Settings and specify the number of threads in Default Maximum Thread Count For Parallel Functions.

Description

Determines if at least one value of a key-value pair in a struct satisfies a given condition.

Returns

True if at least one value matches a condition; false, otherwise.

Syntax

structSome(struct, function(key, value [,struct]){} [, parallel] [, maxThreadCount])
Member function
structObj.Some(callback)

History

ColdFusion (2021 release): Introduced the following parameters:
  • parallel
  • maxThreadCount
ColdFusion (2018 release) Update 5: Added this function.

Parameters

Parameter
Required/Optional
Description
struct
Required
Struct in which at least one value is to be searched.
callback
Required
Function that encapsulates the criteria.
parallel
Optional
(Boolean)- True if you want to enable parallel programming.
maxThreadCount
Optional
(Int) The number of threads the function can execute. The number of threads must be between 1-50. If the value exceeds 50, there is an exception.

Example

Example 1
<cfscript>
 mystruct = {a=1,b=2,c=3};
 doesValExist=(key,value,struct)=>return value==1
 writeoutput(structSome(mystruct,doesValExist))
</cfscript>
Output
YES
Example 2
<cfscript> 
 structEven={a=2,b=4,c=8,d=10,e=12} 
 isEven=(key,value)=>value%2==0 
 writeOutput(StructSome(structEven,isEven)) // Returns True 
</cfscript>
Output
YES
Member function
<cfscript> 
 structEven={a=2,b=4,c=8,d=10,e=12} 
 isEven=(key,value)=>return value%2==0 
 writeOutput(structEven.Some(isEven)) // Returns True 
</cfscript>
Member function - Using arrow operator
<cfscript> 
 ordstruct=["key1":"abc","key2":"def","key3":"sss"] 
    lambdaFunc= key => key.contains("key") 
    writeOutput(ordstruct.Some(lambdaFunc)) 
</cfscript>
Exampe 3 - Named parameters
<cfscript> 
 mystruct={"key1":"aval","key2":"bval","key3":"cval"} 
 result=StructSome(struct=mystruct,callback=function(key,val){ 
  if (key.contains("key1") && val.startswith("a")) 
              return 1 
  else 
              return 0 
   } 
 ) 
 writeOutput(result) 
</cfscript>
Output
YES
Using parallelization
<cfscript> 
mystruct= Structnew("ordered"); 
for(i=1;i<=10000;i++){ 
mystruct.insert("key#i#","val#i#") 
 

function callback(key,val){ 
if(isObject(val)) 
 return true 
return false 
 } 
   
  
 writeoutput(mystruct.some(callback)) 
  
 writeoutput(mystruct.some(callback,true,5)); 
  
 writeoutput(mystruct.some(callback,true,10)) 
  
 writeoutput(structsome(struct=mystruct,callback=callback,parallel=true,maxthreadcount=20)) 
  
 writeoutput(structsome(struct=mystruct,callback=callback,parallel=true,maxthreadcount="40")) 
  
 try{ writeoutput(structsome(struct=mystruct,callback=callback,parallel=true,maxthreadcount=-20))} 
 catch(any e){ 
  writeoutput("<br>Type: " & e.type & " Message:" &  e.message ) 

 try{ writeoutput(structsome(struct=mystruct,callback=callback,parallel=true,maxthreadcount="200a"))} 
 catch(any e){ 
  writeoutput("<br>Type: " & e.type & " Message:" &  e.message ) 

 
</cfscript>

Share this page

Was this page helpful?
We're glad. Tell us how this page helped.
We're sorry. Can you tell us what didn't work for you?
Thank you for your feedback. Your response will help improve this page.

On this page