Dict
Provide utilities for JS dictionary object.
Note: This module's examples will assume this predeclared dictionary:
Examples
RESCRIPTlet ages = Js.Dict.fromList(list{("Maria", 30), ("Vinh", 22), ("Fred", 49)})
t
type t<'a> = dict<'a>
key
type key = string
The type for dictionary keys. This means that dictionaries must use string
s as their keys.
get
let get: (t<'a>, key) => option<'a>
Js.Dict.get(key)
returns None
if the key is not found in the dictionary,
Some(value)
otherwise.
Examples
RESCRIPTJs.Dict.get(ages, "Vinh") == Some(22)
Js.Dict.get(ages, "Paul") == None
unsafeGet
let unsafeGet: (t<'a>, key) => 'a
Js.Dict.unsafeGet(key)
returns the value if the key exists, otherwise an undefined
value is returned. Use this only when you are sure the key exists (i.e. when having used the keys()
function to check that the key is valid).
Examples
RESCRIPTJs.Dict.unsafeGet(ages, "Fred") == 49
Js.Dict.unsafeGet(ages, "Paul") // returns undefined
set
let set: (t<'a>, key, 'a) => unit
Js.Dict.set(dict, key, value)
sets the key/value in the dictionary dict
. If
the key does not exist, and entry will be created for it.
This function modifies the original dictionary.
Examples
RESCRIPTJs.Dict.set(ages, "Maria", 31)
Js.log(ages == Js.Dict.fromList(list{("Maria", 31), ("Vinh", 22), ("Fred", 49)}))
Js.Dict.set(ages, "David", 66)
Js.log(ages == Js.Dict.fromList(list{("Maria", 31), ("Vinh", 22), ("Fred", 49), ("David", 66)}))
keys
let keys: t<'a> => array<string>
Returns all the keys in the dictionary dict
.
Examples
RESCRIPTJs.Dict.keys(ages) == ["Maria", "Vinh", "Fred"]
empty
let empty: unit => t<'a>
Returns an empty dictionary.
unsafeDeleteKey
let unsafeDeleteKey: (t<string>, string) => unit
Experimental internal function
entries
let entries: t<'a> => array<(key, 'a)>
Returns an array of key/value pairs in the given dictionary (ES2017).
Examples
RESCRIPTJs.Dict.entries(ages) == [("Maria", 30), ("Vinh", 22), ("Fred", 49)]
values
let values: t<'a> => array<'a>
Returns the values in the given dictionary (ES2017).
Examples
RESCRIPTJs.Dict.values(ages) == [30, 22, 49]
fromList
let fromList: list<(key, 'a)> => t<'a>
Creates a new dictionary containing each (key, value) pair in its list argument.
Examples
RESCRIPTlet capitals = Js.Dict.fromList(list{("Japan", "Tokyo"), ("France", "Paris"), ("Egypt", "Cairo")})
fromArray
let fromArray: array<(key, 'a)> => t<'a>
Creates a new dictionary containing each (key, value) pair in its array argument.
Examples
RESCRIPTlet capitals2 = Js.Dict.fromArray([("Germany", "Berlin"), ("Burkina Faso", "Ouagadougou")])
map
let map: ('a => 'b, t<'a>) => t<'b>
map(f, dict)
maps dict
to a new dictionary with the same keys, using the
function f
to map each value.
Examples
RESCRIPTlet prices = Js.Dict.fromList(list{("pen", 1.00), ("book", 5.00), ("stapler", 7.00)})
let discount = (. price) => price *. 0.90
let salePrices = Js.Dict.map(discount, prices)
salePrices == Js.Dict.fromList(list{("pen", 0.90), ("book", 4.50), ("stapler", 6.30)})