Logical Functions
These functions provide convenient one-line methods for evaluating expressions. They include methods for checking for empty values, using if-else logic, and implementing switch-case statements among others.
Decode
Decode(expression, [compare1, return1, ..., compareN, returnN]?, default?) -> Any
Evaluates an expression to a value and compares the result value with the value of subsequent parameters. If the expression evaluates to a matching value, it returns the subsequent parameter value. If no matches are found, then a default
value may be provided. This is similar to a switch/case statement
Parameters
- expression: Any - An Arcade expression that must evaluate to a value that can be compared with the provided case values.
- [compare1, return1, ..., compareN, returnN] (Optional): Any - A set of compare values and return value pairs.
- default (Optional): Any - A default value to return if none of the compare values match. This may be a value of any type.
Return value: Any
Returns the matched return value. If no matches are found, then the default
value is returned.
Example
// returns a meaningful value when a field contains coded values
var code = $feature.codedValue;
var decodedValue = Decode(code, 1, 'Residential', 2, 'Commercial', 3, 'Mixed', 'Other');
DefaultValue
DefaultValue(value, defaultValue?) -> Any
Returns a specified default value if an empty value is detected.
Parameters
- value: Any - The input value to compare against
null
or''
. This may be a value of any type. However, if this value is an empty array, then the empty array will be returned. - defaultValue (Optional): Any - Return this value if the provided
value
is empty. The data type ofdefaultValue
must match the data type ofvalue
.
Return value: Any
If value
is empty, then the defaultValue
is returned. Otherwise, the value of value
is returned.
Example
// If a feature has no value in the POP_2000 field
// then 'no data' is returned
DefaultValue($feature.POP_2000, 'no data')
IIf
IIf(condition, trueValue, falseValue) -> Any
Returns a given value if a conditional expression evaluates to true
, and returns an alternate value if that condition evaluates to false
.
Parameters
- condition: Boolean - A logical expression that must evaluate to
true
orfalse
. - trueValue: Any - The value to return if the
condition
evaluates totrue
. This may be a value of any type. - falseValue: Any - The value to return if the
condition
evaluates tofalse
. This may be a value of any type.
Return value: Any
If condition
is true
, then the trueValue
is returned. Otherwise, the value of falseValue
is returned.
Example
// returns 'below' if the value is less than 1,000,000.
// if the value is more than 1,000,000, then returns 'above'
var population = $feature.POP_2007;
IIf(population < 1000000, 'below', 'above');
When
When(expression1, result1, [expression2, result2, ..., expressionN, resultN]?, defaultValue) -> Any
Evaluates a series of conditional expressions until one evaluates to true
.
Parameters
- expression1: Boolean - a conditional expressions, if it evaluates to
true
thenresult1
will be returned. - result1: Any - The result returned if the
expression1
evaluates totrue
. This may be a value of any type. - [expression2, result2, ..., expressionN, resultN] (Optional): Any - A series of conditional expressions and return values if the given expression evaluates to
true
. This may be a value of any type. - defaultValue: Any - Returns this value if all expressions evaluate to
false
. This may be a value of any type.
Return value: Any
Example
Reclassify a numeric field value to a generic ranking (string).
If all expressions are false
, then 'n/a' is returned
var density = $feature.densityField;
var ranking = When(density < 50, 'low', density >=50 && density < 100, 'medium', density >= 100, 'high', 'n/a');