aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2021-08-29 15:08:06 +0100
committerLouis Pilfold <louis@lpil.uk>2021-08-29 15:08:06 +0100
commitfbd541429ab4c04e680aeaea2e3f1540b44dca59 (patch)
tree75b0d5d5dc9a17f6195ea6e9aaa0264a9551663e
parent0d558ccee2ce740a3f2dea694527a8d1d21980cb (diff)
downloadjavascript-fbd541429ab4c04e680aeaea2e3f1540b44dca59.tar.gz
javascript-fbd541429ab4c04e680aeaea2e3f1540b44dca59.zip
Array map
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/gleam/javascript/array.gleam3
-rw-r--r--test/gleam/javascript/array_test.gleam14
3 files changed, 18 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index af4285a..04012f9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,4 +3,4 @@
## Unreleased
- The `array` module was created with the `Array(element)` type and `to_list`,
- `from_list` and `length` functions.
+ `from_list`, `map`, and `length` functions.
diff --git a/src/gleam/javascript/array.gleam b/src/gleam/javascript/array.gleam
index b2e5992..6c4819e 100644
--- a/src/gleam/javascript/array.gleam
+++ b/src/gleam/javascript/array.gleam
@@ -8,3 +8,6 @@ pub external fn from_list(List(element)) -> Array(element) =
pub external fn length(Array(element)) -> Int =
"../../ffi.js" "length"
+
+pub external fn map(Array(a), fn(a) -> b) -> Array(b) =
+ "../../ffi.js" "map"
diff --git a/test/gleam/javascript/array_test.gleam b/test/gleam/javascript/array_test.gleam
index 2f5e627..2f149a5 100644
--- a/test/gleam/javascript/array_test.gleam
+++ b/test/gleam/javascript/array_test.gleam
@@ -17,3 +17,17 @@ pub fn length_test() {
array.from_list([])
|> array.length
}
+
+pub fn map_test() {
+ assert [] =
+ []
+ |> array.from_list
+ |> array.map(fn(a) { a + 1 })
+ |> array.to_list
+
+ assert [2, 3, 4] =
+ [1, 2, 3]
+ |> array.from_list
+ |> array.map(fn(a) { a + 1 })
+ |> array.to_list
+}