These functions provide convenient one-line methods for evaluating expressions.
Boolean
Boolean(value) -> Boolean
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
Return value: Boolean
Examples
// returns `true`
Boolean('true')
// returns `false`. A value of 1 would return `true`
Boolean(0)
// returns `false`
Boolean('hello')
Decode
Decode(expression, [compare1, return1, ..., compareN, returnN], default) -> Any
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
// 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
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 ofdefault
must match the data type ofValue value
.
Return value: Any
If value
is empty, then the default
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')
Equals
Equals(value1, value2) -> Boolean
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
Return value: Boolean
Example
Compares if two values are equal
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
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
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 true
is returned. Otherwise, the value of false
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');
IsEmpty
IsEmpty(value) -> Boolean
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
// Returns true
IsEmpty(null)
// Returns false
IsEmpty('hello world')
IsNan
IsNan(value) -> Boolean
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
// Returns true
IsNan(Infinity / Infinity)
// Returns false
IsNan('4')
TypeOf
TypeOf(value) -> Text
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'
TypeOf(true)
prints 'Date'
TypeOf(Now())
When
When(expression1, result1, [expression2, result2, ..., expressionN, resultN]?, defaultValue) -> Any
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
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 (text).
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');