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 of defaultValue must match the data type of value.

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 or false.
  • trueValue: Any - The value to return if the condition evaluates to true. This may be a value of any type.
  • falseValue: Any - The value to return if the condition evaluates to false. 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 then result1 will be returned.
  • result1: Any - The result returned if the expression1 evaluates to true. 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');

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.