Logical functions

These functions provide convenient one-line methods for evaluating expressions.


Boolean

Boolean(value) -> Boolean

Since version 1.0

Function bundle: Core

Attempts to convert the given non-boolean value to a boolean value. For example a text value of 'true' would become true.

Parameter

  • value: Text | Number - A text or number value to be converted to a boolean.

Return value: Boolean

Examples

1
2
// returns `true`
Boolean('true')
1
2
// returns `false`. A value of 1 would return `true`
Boolean(0)
1
2
// returns `false`
Boolean('hello')

Decode

Decode(expression, [compare1, return1, ..., compareN, returnN], default) -> Any

Since version 1.0

Function bundle: Core

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 the default value will be returned. 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]: Any - A set of compare values and return value pairs.
  • default: 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

1
2
3
// 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

Since version 1.0

Function bundle: Core

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: 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

1
2
3
// If a feature has no value in the POP_2000 field
// then 'no data' is returned
DefaultValue($feature.POP_2000, 'no data')

Equals

Equals(value1, value2) -> Boolean

Since version 1.24

Function bundle: Core

Indicates if two values are equal. Object types (i.e. Arrays, Features, Dictionaries, Geometry) will return true only if they are the same object.

Parameters

  • value1: Any - The first input value.
  • value2: Any - The second input value.

Return value: Boolean

Example

Compares if two values are equal

1
2
3
4
5
6
7
8
9
Equals(1, "1") // returns false

var testVal = "test";
Equals(testVal, "test") // returns true

var array1 = Array(5);
var array2 = Array(5);
Equals(array1, array2); // returns false
Equals(array1, array1); // returns true

IIf

IIf(condition, trueValue, falseValue) -> Any

Since version 1.0

Function bundle: Core

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

1
2
3
4
// 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');

IsEmpty

IsEmpty(value) -> Boolean

Since version 1.0

Function bundle: Core

Returns true if the provided value is null or an empty text (e.g. ''). Returns false for all other cases, including empty arrays and dictionaries.

Parameter

  • value: Any - The value that is compared against null or ''. This may be a value of any type.

Return value: Boolean

Examples

1
2
// Returns true
IsEmpty(null)
1
2
// Returns false
IsEmpty('hello world')

IsNan

IsNan(value) -> Boolean

Since version 1.5

Function bundle: Core

Indicates whether the input value is not a number (NaN). A number is considered NaN in one of the following scenarios: - 0/0 - Infinity / Infinity - Infinity * 0 - Any operation in which NaN is an operand - Casting a non-numeric text or undefined to a number

Parameter

  • value: Any - The value to check if it is NaN.

Return value: Boolean

Examples

1
2
// Returns true
IsNan(Infinity / Infinity)
1
2
// Returns false
IsNan('4')

TypeOf

TypeOf(value) -> Text

Since version 1.0

Function bundle: Core

Returns the type of the input value. Will return one of the following types: Array, Date, Text, Boolean, Number, Dictionary, Feature, FeatureSet, Point, Polygon, Polyline, Multipoint, Extent, Function, Unrecognized Type.

Parameter

  • value: Any - The input value, variable, or feature attribute.

Return value: Text

Examples

prints 'Boolean'

1
TypeOf(true)

prints 'Date'

1
TypeOf(Now())

When

When(expression1, result1, [expression2, result2, ..., expressionN, resultN]?, defaultValue) -> Any

Since version 1.0

Function bundle: Core

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 (text).
If all expressions are false, then 'n/a' is returned

1
2
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.

You can no longer sign into this site. Go to your ArcGIS portal or the ArcGIS Location Platform dashboard to perform management tasks.

Your ArcGIS portal

Create, manage, and access API keys and OAuth 2.0 developer credentials, hosted layers, and data services.

Your ArcGIS Location Platform dashboard

Manage billing, monitor service usage, and access additional resources.

Learn more about these changes in the What's new in Esri Developers June 2024 blog post.

Close