Logical functions | ArcGIS Arcade | Esri Developer

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

Use dark colors for code blocksCopy
1
2
// returns `true`
Boolean('true')
Use dark colors for code blocksCopy
1
2
// returns `false`. A value of 1 would return `true`
Boolean(0)
Use dark colors for code blocksCopy
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

Use dark colors for code blocksCopy
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

Use dark colors for code blocksCopy
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

Use dark colors for code blocksCopy
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

Use dark colors for code blocksCopy
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

Use dark colors for code blocksCopy
1
2
// Returns true
IsEmpty(null)
Use dark colors for code blocksCopy
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

Use dark colors for code blocksCopy
1
2
// Returns true
IsNan(Infinity / Infinity)
Use dark colors for code blocksCopy
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'

Use dark colors for code blocksCopy
1
TypeOf(true)

prints 'Date'

Use dark colors for code blocksCopy
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

Use dark colors for code blocksCopy
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.