A set of functions for working with dictionaries.
DefaultValueThis function has 2 signatures:
Function bundle: Core
Returns a specified default value if a key in a dictionary does not exist or the value at the specified key is null
or an empty text value.
Parameters
null
or an empty text value.Return value: Any
Returns the value at the specified key if defined. Otherwise, returns the value specified in defaultValue
.
Examples
DefaultValue returns a defined value
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var data = {
time: Date(2024, 0, 24, 12),
weather: {
precipitation: {
type: "rain",
value: 0.4,
unit: "inches"
},
temperature: {
value: 50,
unit: "f"
},
conditions: {
description: "Overcast"
}
}
}
DefaultValue(data, "time", "No time logged")
// value of data.time is defined, so it is returned
// returns Jan 24, 2024, 12:00:00 PM system time
DefaultValue returns a default if there is no value at the specified key.
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var data = {
time: '',
weather: {
precipitation: {
type: "rain",
value: 0.4,
unit: "inches"
},
temperature: {
value: 50,
unit: "f"
},
conditions: {
description: "Overcast"
}
}
}
DefaultValue(data, "time", "No time logged")
// value of data.time is empty, so the default is returned
// returns "No time logged"
DefaultValue returns a default if the key does not exist.
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
var data = {
time: ''
}
DefaultValue(data, "conditions", "n/a")
// the conditions key does not exist, so the default is returned
// returns "n/a"
DefaultValue(inputDictionary, keys, defaultValue) -> Any
Function bundle: Core
Returns a specified default value if at least one of the keys in a nested dictionary does not exist or the value at the specified key is null
or an empty text value.
Parameters
null
or an empty text value.Return value: Any
Returns the value at the specified key or index if defined. Otherwise, returns the value specified in defaultValue
.
Examples
DefaultValue returns a defined value
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var data = {
time: Date(2024, 0, 24, 12),
weather: {
precipitation: {
type: "rain",
value: 0.4,
unit: "inches"
},
temperature: {
value: 50,
unit: "f"
},
conditions: {
description: "Overcast"
}
}
}
DefaultValue(data, ["weather", "precipitation", "value"], "No time logged")
// value of data.weather.precipitation.value is defined, so it is returned
// returns 0.4
DefaultValue returns a default if there is no value at the specified key.
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var data = {
time: Date(2024, 0, 24, 12),
weather: {
precipitation: {
type: "rain",
value: null,
unit: "inches"
},
temperature: {
value: 50,
unit: "f"
},
conditions: {
description: "Overcast"
}
}
}
DefaultValue(data, ["weather", "precipitation", "value"], 0)
// value of data.weather.precipitation.value is null, so the default is returned
// returns 0
DefaultValue returns a default if the key does not exist.
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var data = {
time: Date(2024, 0, 24, 12),
weather: {
precipitation: {
type: "rain",
value: null,
unit: "inches"
},
temperature: {
value: 50,
unit: "f"
},
conditions: {
description: "Overcast"
}
}
}
DefaultValue(data, ["weather", "wind", "value"], "n/a")
// the data.weather.wind key does not exist, so the default is returned
// returns "n/a"
Check null value in an array within a dictionary with key that exists
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var data = {
time: Date(2024, 0, 24, 12),
interval: 1,
intervalUnit: "days",
weather: {
precipitation: {
type: "rain",
values: [0.4, 0, 0, null, 0.1, 0.8, 1],
unit: "inches"
},
temperature: {
values: [50, 50, 51, 52, 55, 49, 51],
unit: "f"
},
}
}
DefaultValue(data, ["weather", "precipitation", "values", 3], 0)
// the value data.weather.precipitation.values[3] is null, so the default is returned
// returns 0
Dictionary
This function has 6 signatures:
Function bundle: Core
Returns a new dictionary based on the provided arguments. The arguments are name/value pairs. e.g. dictionary('field1',val,'field2',val2,...).
Parameter
Return value: Dictionary
Example
prints 3
Use dark colors for code blocks Copy
1
2
var d = Dictionary('field1', 1, 'field2', 2)
return d.field1 + d.field2
Dictionary(jsonText) -> Dictionary
Function bundle: Core
Deserializes JSON text as an Arcade Dictionary.
Parameter
Return value: Dictionary
Example
Deserializes JSON as a Dictionary.
Use dark colors for code blocks Copy
1
2
3
var extraInfo = '{"id": 1, "population": 200, "city": "Spencer, ID"}'
var spencerIDdata = Dictionary(extraInfo)
spencerIDdata.population // Returns 200
Dictionary(inputGeometry) -> Dictionary
Function bundle: Geometry
Converts a geometry value to a dictionary.
Parameter
Return value: Dictionary
Example
Update the x attribute of a point geometry.
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
// convert the $feature's geometry to a dictionary
if (TypeOf(Geometry($feature)) == "Point") {
var ptDict = Dictionary(Geometry($feature));
ptDict.x *= 2; // stretch horizontally
// create a new geometry from the updated dictionary
return Geometry(ptDict);
}
Dictionary(inputFeature) -> Dictionary
Function bundle: Core
Converts a feature to a dictionary.
Parameter
Return value: Dictionary
Example
Convert a feature to a dictionary
Use dark colors for code blocks Copy
1
2
// convert $feature to a dictionary
var featureDict = Dictionary($feature);
Dictionary(inputDictionary, deep?) -> Dictionary
Function bundle: Core
Creates either a shallow or deep copy of a dictionary.
Parameters
true
, creates a deep copy of the dictionary will be created, meaning the properties of the output dictionary will not share the same references as the input dictionary. Default value is false
.Return value: Dictionary
Examples
Create a shallow copy of a Dictionary
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
var inputDict = {
company: {
name: "Esri",
location: "Redlands, CA"
},
office: "M123"
};
var copiedDict = Dictionary(inputDict);
return inputDict.company == copiedDict.company
// returns true
// this is a shallow copy of the Dictionary, so the dictionaries share the same references
Create a deep copy of a Dictionary
Use dark colors for code blocks Copy
1
2
3
4
var deepCopy = Dictionary(inputDict, true);
return inputDict.company == deepCopy.company
// returns false
// this is a deep copy of the Dictionary, so the dictionaries do NOT share the same references
Dictionary(inputVoxel) -> Dictionary
Function bundle: Core
Converts a voxel to a dictionary.
Parameter
Return value: Dictionary
Example
Convert a voxel to a dictionary
Use dark colors for code blocks Copy
1
2
// convert $voxel to a dictionary
var voxelDict = Dictionary($voxel);
FromJSON FromJSON(jsonText) -> Dictionary | Array<Any> | Text | Boolean | Number
Function bundle: Core
Deserializes JSON text into its equivalent Arcade data types.
Parameter
Return value: Dictionary | Array<Any> | Text | Boolean | Number
Examples
Converts text to a boolean
Use dark colors for code blocks Copy
1
2
FromJSON("true")
// Returns true
Converts text to a number
Use dark colors for code blocks Copy
1
2
fromJSON("731.1")
// returns 731.1
Converts text to a dictionary
Use dark colors for code blocks Copy
1
2
3
var d = fromJSON('{"kids": 3, "adults": 4 }')
d.kids + d.adults
// returns 7
Converts text to an array
Use dark colors for code blocks Copy
1
2
fromJSON('["one", 2, "three", false]')
// returns [ "one", 2, "three", false ]
Converts text to null
Use dark colors for code blocks Copy
1
2
fromJSON("null")
// returns null
HasKey HasKey(inputDictionary, key) -> Boolean
Function bundle: Core
Indicates whether a dictionary has the input key.
Parameters
Return value: Boolean
Example
prints true
Use dark colors for code blocks Copy
1
2
var d = Dictionary('Port Hope', 16214, 'Grafton', '<1000', 'Cobourg', 18519);
HasKey(d, 'Cobourg');
HasValue
This function has 2 signatures:
Function bundle: Core
Indicates whether a dictionary has a given key and if that key has a value.
Parameters
Return value: Boolean
Examples
Dictionary with key that has a value
Use dark colors for code blocks Copy
1
2
3
var d = Dictionary('Port Hope', 16214, 'Grafton', '<1000', 'Cobourg', 18519);
HasValue(d, 'Cobourg');
// returns true
Dictionary with key that does not have a value
Use dark colors for code blocks Copy
1
2
3
var d = Dictionary('Port Hope', 16214, 'Grafton', '<1000', 'Cobourg', null);
HasValue(d, 'Cobourg');
// returns false
Dictionary without the provided key
Use dark colors for code blocks Copy
1
2
3
var d = Dictionary('Port Hope', 16214, 'Grafton', '<1000');
HasValue(d, 'Cobourg');
// returns false
Dictionary without the provided key
Use dark colors for code blocks Copy
1
2
3
if ( HasValue( Schema($feature).fields[0], "domain" ) ) {
// Do something with the value if true
}
HasValue(inputDictionary, keys) -> Boolean
Function bundle: Core
Checks whether a property nested several levels deep in a dictionary has a value. This allows you to drill into a nested structure in one step rather than check values at each level. Returns true
if the keys and indexes at each level of the structure exist and include a non-null value.
Parameters
Return value: Boolean
Examples
Check dictionary with key that has a nested value
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var data = {
time: Date(2024, 0, 24, 12),
weather: {
precipitation: {
type: "rain",
value: 0.4,
unit: "inches"
},
temperature: {
value: 50,
unit: "f"
},
conditions: {
description: "Overcast"
}
}
}
if(HasValue(data, ["weather","precipitation","value"])){
// if() evaluates to true, thus executing the return
return data.weather.precipitation.value;
}
Check value in a dictionary with key that does not exist
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var data = {
time: Date(2024, 0, 24, 12),
weather: {
precipitation: {
type: "rain",
value: 0.4,
unit: "inches"
},
temperature: {
value: 50,
unit: "f"
},
conditions: {
description: "Overcast"
}
}
}
if(HasValue(data, ["weather","precipitation","values", 0])){
// if() evaluates to false ("values" does not exist), thus avoiding the block
return data.weather.precipitation.values;
}
Check value in an array within a dictionary with key that does exist
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var data = {
time: Date(2024, 0, 24, 12),
interval: 1,
intervalUnit: "days",
weather: {
precipitation: {
type: "rain",
values: [0.4, 0, 0, null, 0.1, 0.8, 1],
unit: "inches"
},
temperature: {
values: [50, 50, 51, 52, 55, 49, 51],
unit: "f"
},
}
}
if(HasValue(data, ["weather","precipitation","values", 6])){
// if() evaluates to true, thus executing the return
return data.weather.precipitation.values[6];
}
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4