website: Document the remaining "collection" functions
This also renames some of the existing function pages whose source filenames were not matching the usual naming scheme (.html.md).
This commit is contained in:
parent
c8da3e568f
commit
e7d71995f6
|
@ -0,0 +1,54 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "chunklist function"
|
||||||
|
sidebar_current: "docs-funcs-collection-chunklist"
|
||||||
|
description: |-
|
||||||
|
The chunklist function splits a single list into fixed-size chunks, returning
|
||||||
|
a list of lists.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `chunklist` Function
|
||||||
|
|
||||||
|
`chunklist` splits a single list into fixed-size chunks, returning a list
|
||||||
|
of lists.
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
chunklist(list, chunk_size)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> chunklist(["a", "b", "c", "d", "e"], 2)
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"b",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"d",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
],
|
||||||
|
]
|
||||||
|
> chunklist(["a", "b", "c", "d", "e"], 1)
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
],
|
||||||
|
]
|
||||||
|
```
|
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "coalesce function"
|
||||||
|
sidebar_current: "docs-funcs-collection-coalesce-x"
|
||||||
|
description: |-
|
||||||
|
The coalesce function takes any number of string arguments and returns the
|
||||||
|
first one that isn't empty.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `coalesce` Function
|
||||||
|
|
||||||
|
`coalesce` takes any number of string arguments and returns the first one
|
||||||
|
that isn't empty.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> coalesce("a", "b")
|
||||||
|
a
|
||||||
|
> coalesce("", "b")
|
||||||
|
b
|
||||||
|
```
|
||||||
|
|
||||||
|
To perform the `coalesce` operation with a list of strings, use the `...`
|
||||||
|
symbol to expand the list as arguments:
|
||||||
|
|
||||||
|
```
|
||||||
|
> coalesce(["", "b"]...)
|
||||||
|
b
|
||||||
|
```
|
||||||
|
|
||||||
|
## Related Functions
|
||||||
|
|
||||||
|
* [`coalescelist`](./coalescelist.html) performs a similar operation with
|
||||||
|
list arguments rather than string arguments.
|
|
@ -0,0 +1,44 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "coalescelist function"
|
||||||
|
sidebar_current: "docs-funcs-collection-coalescelist"
|
||||||
|
description: |-
|
||||||
|
The coalescelist function takes any number of list arguments and returns the
|
||||||
|
first one that isn't empty.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `coalescelist` Function
|
||||||
|
|
||||||
|
`coalescelist` takes any number of list arguments and returns the first one
|
||||||
|
that isn't empty.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> coalesce(["a", "b"], ["c", "d"])
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"b",
|
||||||
|
]
|
||||||
|
> coalesce([], ["c", "d"])
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"d",
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
To perform the `coalesce` operation with a list of lists, use the `...`
|
||||||
|
symbol to expand the outer list as arguments:
|
||||||
|
|
||||||
|
```
|
||||||
|
> coalesce([[], ["c", "d"]]...)
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"d",
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Related Functions
|
||||||
|
|
||||||
|
* [`coalesce`](./coalesce.html) performs a similar operation with string
|
||||||
|
arguments rather than list arguments.
|
|
@ -0,0 +1,23 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "compact function"
|
||||||
|
sidebar_current: "docs-funcs-collection-compact"
|
||||||
|
description: |-
|
||||||
|
The compact function removes empty string elements from a list.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `compact` Function
|
||||||
|
|
||||||
|
`compact` takes a list of strings and returns a new list with any empty string
|
||||||
|
elements removed.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> compact(["a", "", "b", "c"])
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"b",
|
||||||
|
"c",
|
||||||
|
]
|
||||||
|
```
|
|
@ -0,0 +1,25 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "contains function"
|
||||||
|
sidebar_current: "docs-funcs-collection-contains"
|
||||||
|
description: |-
|
||||||
|
The contains function determines whether a list contains a given value.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `contains` Function
|
||||||
|
|
||||||
|
`contains` determines whether a given list contains a given single value
|
||||||
|
as one of its elements.
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
contains(list, value)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> contains(["a", "b", "c"], "a")
|
||||||
|
true
|
||||||
|
> contains(["a", "b", "c"], "d")
|
||||||
|
false
|
||||||
|
```
|
|
@ -0,0 +1,27 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "distinct function"
|
||||||
|
sidebar_current: "docs-funcs-collection-distinct"
|
||||||
|
description: |-
|
||||||
|
The distinct function removes duplicate elements from a list.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `distinct` Function
|
||||||
|
|
||||||
|
`distinct` takes a list and returns a new list with any duplicate elements
|
||||||
|
removed.
|
||||||
|
|
||||||
|
The first occurence of each value is retained and the relative ordering of
|
||||||
|
these elements is preserved.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> distinct(["a", "b", "a", "c", "d", "b"])
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"b",
|
||||||
|
"c",
|
||||||
|
"d",
|
||||||
|
]
|
||||||
|
```
|
|
@ -0,0 +1,40 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "element function"
|
||||||
|
sidebar_current: "docs-funcs-collection-element"
|
||||||
|
description: |-
|
||||||
|
The element function retrieves a single element from a list.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `element` Function
|
||||||
|
|
||||||
|
`element` retrieves a single element from a list.
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
element(list, index)
|
||||||
|
```
|
||||||
|
|
||||||
|
The index is zero-based. This function produces an error if used with an
|
||||||
|
empty list.
|
||||||
|
|
||||||
|
Use the built-in index syntax `list[index]` in most cases. Use this function
|
||||||
|
only for the special additional "wrap-around" behavior described below.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> element(["a", "b", "c"], 1)
|
||||||
|
b
|
||||||
|
```
|
||||||
|
|
||||||
|
If the given index is greater than the length of the list then the index is
|
||||||
|
"wrapped around" by taking the index modulo the length of the list:
|
||||||
|
|
||||||
|
```
|
||||||
|
> element(["a", "b", "c"], 3)
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
## Related Functions
|
||||||
|
|
||||||
|
* [`index`](./index.html) finds the index for a particular element value.
|
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "flatten function"
|
||||||
|
sidebar_current: "docs-funcs-collection-flatten"
|
||||||
|
description: |-
|
||||||
|
The flatten function eliminates nested lists from a list.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `flatten` Function
|
||||||
|
|
||||||
|
`flatten` takes a list and replaces any elements that are lists with a
|
||||||
|
flattened sequence of the list contents.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> flatten([["a", "b"], [], ["c"]])
|
||||||
|
["a", "b", "c"]
|
||||||
|
```
|
||||||
|
|
||||||
|
If any of the nested lists also contain directly-nested lists, these too are
|
||||||
|
flattened recursively:
|
||||||
|
|
||||||
|
```
|
||||||
|
> flatten([[["a", "b"], []], ["c"]])
|
||||||
|
["a", "b", "c"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Indirectly-nested lists, such as those in maps, are _not_ flattened.
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "index function"
|
||||||
|
sidebar_current: "docs-funcs-collection-index"
|
||||||
|
description: |-
|
||||||
|
The index function finds the element index for a given value in a list.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `index` Function
|
||||||
|
|
||||||
|
`index` finds the element index for a given value in a list.
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
index(list, value)
|
||||||
|
```
|
||||||
|
|
||||||
|
The returned index is zero-based. This function produces an error if the given
|
||||||
|
value is not present in the list.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> index(["a", "b", "c"], "b")
|
||||||
|
1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Related Functions
|
||||||
|
|
||||||
|
* [`element`](./element.html) retrieves a particular element from a list given
|
||||||
|
its index.
|
|
@ -0,0 +1,42 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "length function"
|
||||||
|
sidebar_current: "docs-funcs-collection-length"
|
||||||
|
description: |-
|
||||||
|
The length function determines the length of a collection or string.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `length` Function
|
||||||
|
|
||||||
|
`length` determines the length of a given list, map, or string.
|
||||||
|
|
||||||
|
If given a list or map, the result is the number of elements in that collection.
|
||||||
|
If given a string, the result is the number of characters in the string.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> length([])
|
||||||
|
0
|
||||||
|
> length(["a", "b"])
|
||||||
|
2
|
||||||
|
> length({"a" = "b"})
|
||||||
|
1
|
||||||
|
> length("hello")
|
||||||
|
5
|
||||||
|
```
|
||||||
|
|
||||||
|
When given a string, the result is the number of characters, rather than the
|
||||||
|
number of bytes or Unicode sequences that form them:
|
||||||
|
|
||||||
|
```
|
||||||
|
> length("👾🕹️")
|
||||||
|
2
|
||||||
|
```
|
||||||
|
|
||||||
|
A "character" is a _grapheme cluster_, as defined by
|
||||||
|
[Unicode Standard Annex #29](http://unicode.org/reports/tr29/). Note that
|
||||||
|
remote APIs may have a different definition of "character" for the purpose of
|
||||||
|
length limits on string arguments; a Terraform provider is responsible for
|
||||||
|
translating Terraform's string representation into that used by its respective
|
||||||
|
remote system and applying any additional validation rules to it.
|
|
@ -0,0 +1,40 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "list function"
|
||||||
|
sidebar_current: "docs-funcs-collection-list"
|
||||||
|
description: |-
|
||||||
|
The list function constructs a list from some given elements.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `list` Function
|
||||||
|
|
||||||
|
~> **This function is deprecated.** From Terraform v0.12, the Terraform
|
||||||
|
language has built-in syntax for creating lists using the `[` and `]`
|
||||||
|
delimiters. Use the built-in syntax instead. The `list` function will be
|
||||||
|
removed in a future version of Terraform.
|
||||||
|
|
||||||
|
`list` takes an arbitrary number of arguments and returns a list containing
|
||||||
|
those values in the same order.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> list("a", "b", "c")
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"b",
|
||||||
|
"c",
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Do not use the above form in Terraform v0.12 or above. Instead, use the
|
||||||
|
built-in list construction syntax, which achieves the same result:
|
||||||
|
|
||||||
|
```
|
||||||
|
> ["a", "b", "c"]
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"b",
|
||||||
|
"c",
|
||||||
|
]
|
||||||
|
```
|
|
@ -0,0 +1,38 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "map function"
|
||||||
|
sidebar_current: "docs-funcs-collection-map"
|
||||||
|
description: |-
|
||||||
|
The map function constructs a map from some given elements.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `map` Function
|
||||||
|
|
||||||
|
~> **This function is deprecated.** From Terraform v0.12, the Terraform
|
||||||
|
language has built-in syntax for creating maps using the `{` and `}`
|
||||||
|
delimiters. Use the built-in syntax instead. The `map` function will be
|
||||||
|
removed in a future version of Terraform.
|
||||||
|
|
||||||
|
`map` takes an even number of arguments and returns a map whose elements
|
||||||
|
are constructed from consecutive pairs of arguments.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> map("a", "b", "c", "d")
|
||||||
|
{
|
||||||
|
"a" = "b"
|
||||||
|
"c" = "d"
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Do not use the above form in Terraform v0.12 or above. Instead, use the
|
||||||
|
built-in map construction syntax, which achieves the same result:
|
||||||
|
|
||||||
|
```
|
||||||
|
> {"a" = "b", "c" = "d"}
|
||||||
|
{
|
||||||
|
"a" = "b"
|
||||||
|
"c" = "d"
|
||||||
|
]
|
||||||
|
```
|
|
@ -0,0 +1,72 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "list function"
|
||||||
|
sidebar_current: "docs-funcs-collection-matchkeys"
|
||||||
|
description: |-
|
||||||
|
The matchkeys function takes a subset of elements from one list by matching
|
||||||
|
corresponding indexes in another list.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `matchkeys` Function
|
||||||
|
|
||||||
|
`matchkeys` constructs a new list by taking a subset of elements from one
|
||||||
|
list whose indexes match the corresponding indexes of values in another
|
||||||
|
list.
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
matchkeys(valueslist, keyslist, searchset)
|
||||||
|
```
|
||||||
|
|
||||||
|
`matchkeys` identifies the indexes in `keyslist` that are equal to elements of
|
||||||
|
`searchset`, and then constructs a new list by taking those same indexes from
|
||||||
|
`valueslist`. Both `valueslist` and `keyslist` must be the same length.
|
||||||
|
|
||||||
|
The ordering of the values in `valueslist` is preserved in the result.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> matchkeys(["i-123", "i-abc", "i-def"], ["us-west", "us-east", "us-east"], ["us-east"])
|
||||||
|
[
|
||||||
|
"i-abc",
|
||||||
|
"i-def",
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
If the result ordering is not significant, you can achieve a similar result
|
||||||
|
using a `for` expression with a map:
|
||||||
|
|
||||||
|
```
|
||||||
|
> [for i, z in {"i-123"="us-west","i-abc"="us-east","i-def"="us-east"}: i if z == "us-east"]
|
||||||
|
[
|
||||||
|
"i-def",
|
||||||
|
"i-abc",
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
If the keys and values of interest are attributes of objects in a list of
|
||||||
|
objects then you can also achieve a similar result using a `for` expression
|
||||||
|
with that list:
|
||||||
|
|
||||||
|
```
|
||||||
|
> [for x in [{id="i-123",zone="us-west"},{id="i-abc",zone="us-east"}]: x.id if x.zone == "us-east"]
|
||||||
|
[
|
||||||
|
"i-abc",
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
For example, the previous form can be used with the list of resource instances
|
||||||
|
produced by a `resource` block with the `count` meta-attribute set, to filter
|
||||||
|
the instances by matching one of the resource attributes:
|
||||||
|
|
||||||
|
```
|
||||||
|
> [for x in aws_instance.example: x.id if x.availability_zone == "us-east-1a"]
|
||||||
|
[
|
||||||
|
"i-abc123",
|
||||||
|
"i-def456",
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Since the signature of `matchkeys` is complicated and not immediately clear to
|
||||||
|
the reader when used in configuration, prefer to use `for` expressions where
|
||||||
|
possible to maximize readability.
|
|
@ -0,0 +1,27 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "merge function"
|
||||||
|
sidebar_current: "docs-funcs-collection-merge"
|
||||||
|
description: |-
|
||||||
|
The merge function takes an arbitrary number of maps and returns a single
|
||||||
|
map after merging the keys from each argument.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `merge` Function
|
||||||
|
|
||||||
|
`merge` takes an arbitrary number of maps and returns a single map that
|
||||||
|
contains a merged set of elements from all of the maps.
|
||||||
|
|
||||||
|
If more than one given map defines the same key then the one that is later
|
||||||
|
in the argument sequence takes precedence.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> merge({"a"="b", "c"="d"}, {"e"="f", "c"="z"})
|
||||||
|
{
|
||||||
|
"a" = "b"
|
||||||
|
"c" = "z"
|
||||||
|
"e" = "f"
|
||||||
|
}
|
||||||
|
```
|
|
@ -0,0 +1,34 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "slice function"
|
||||||
|
sidebar_current: "docs-funcs-collection-slice"
|
||||||
|
description: |-
|
||||||
|
The slice function extracts some consecutive elements from within a list.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `slice` Function
|
||||||
|
|
||||||
|
`slice` extracts some consecutive elements from within a list.
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
slice(list, startindex, endindex)
|
||||||
|
```
|
||||||
|
|
||||||
|
`startindex` is inclusive, while `endindex` is exclusive. This function returns
|
||||||
|
an error if either index is outside the bounds of valid indices for the given
|
||||||
|
list.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> slice(["a", "b", "c", "d"], 1, 3)
|
||||||
|
[
|
||||||
|
"b",
|
||||||
|
"c",
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Related Functions
|
||||||
|
|
||||||
|
* [`substr`](./substr.html) performs a similar function for characters in a
|
||||||
|
string, although it uses a length instead of an end index.
|
|
@ -0,0 +1,28 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "sort function"
|
||||||
|
sidebar_current: "docs-funcs-collection-sort"
|
||||||
|
description: |-
|
||||||
|
The sort function takes a list of strings and returns a new list with those
|
||||||
|
strings sorted lexicographically.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `sort` Function
|
||||||
|
|
||||||
|
`sort` takes a list of strings and returns a new list with those strings
|
||||||
|
sorted lexicographically.
|
||||||
|
|
||||||
|
The sort is in terms of Unicode codepoints, with higher codepoints appearing
|
||||||
|
after lower ones in the result.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> sort(["e", "d", "a", "x"])
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"d",
|
||||||
|
"e",
|
||||||
|
"x",
|
||||||
|
]
|
||||||
|
```
|
|
@ -0,0 +1,31 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "transpose function"
|
||||||
|
sidebar_current: "docs-funcs-collection-transpose"
|
||||||
|
description: |-
|
||||||
|
The transpose function takes a map of lists of strings and swaps the keys
|
||||||
|
and values.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `transpose` Function
|
||||||
|
|
||||||
|
`transpose` takes a map of lists of strings and swaps the keys and values
|
||||||
|
to produce a new map of lists of strings.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> transpose({"a" = ["1", "2"], "b" = ["2", "3"]})
|
||||||
|
{
|
||||||
|
"1" = [
|
||||||
|
"a",
|
||||||
|
],
|
||||||
|
"2" = [
|
||||||
|
"a",
|
||||||
|
"b",
|
||||||
|
],
|
||||||
|
"3" = [
|
||||||
|
"b",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
```
|
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
layout: "functions"
|
||||||
|
page_title: "zipmap function"
|
||||||
|
sidebar_current: "docs-funcs-collection-zipmap"
|
||||||
|
description: |-
|
||||||
|
The zipmap function constructs a map from a list of keys and a corresponding
|
||||||
|
list of values.
|
||||||
|
---
|
||||||
|
|
||||||
|
# `zipmap` Function
|
||||||
|
|
||||||
|
`zipmap` constructs a map from a list of keys and a corresponding list of
|
||||||
|
values.
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
zipmap(keyslist, valueslist)
|
||||||
|
```
|
||||||
|
|
||||||
|
Both `keyslist` and `valueslist` must be of the same length. `keyslist` must
|
||||||
|
be a list of strings, while `valueslist` can be a list of any type.
|
||||||
|
|
||||||
|
Each pair of elements with the same index from the two lists will be used
|
||||||
|
as the key and value of an element in the resulting map. If the same value
|
||||||
|
appears multiple times in `keyslist` then the value with the highest index
|
||||||
|
is used in the resulting map.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
> zipmap(["a", "b"], [1, 2])
|
||||||
|
{
|
||||||
|
"a" = 1,
|
||||||
|
"b" = 2,
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in New Issue