StructSome

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

1
StructSome(struct,callback)

Member function

1
structObj.Some(callback)

History

New in 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.

Example

Example 1

1
2
3
4
5
<cfscript>
    mystruct = {a=1,b=2,c=3};
    doesValExist=(key,value,struct)=>return value==1
    writeoutput(structSome(mystruct,doesValExist))
</cfscript>

Output

YES

Example 2

1
2
3
4
5
<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

1
2
3
4
5
<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

1
2
3
4
5
<cfscript>
    ordstruct=["key1":"abc","key2":"def","key3":"sss"]
    lambdaFunc= key => key.contains("key")
    writeOutput(ordstruct.Some(lambdaFunc))
</cfscript>

Exampe 3 - Named parameters

1
2
3
4
5
6
7
8
9
10
11
<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