hugo/docs/content/en/functions/collections/Merge.md
2023-10-20 09:43:56 +02:00

1.5 KiB

title linkTitle description categories keywords menu function relatedFunctions aliases
collections.Merge merge Returns the result of merging two or more maps.
functions
docs
parent
functions
aliases returnType signatures
merge
any
collections.Merge MAP MAP...
collections.Append
collections.Merge
/functions/merge

Returns the result of merging two or more maps from left to right. If a key already exists, merge updates its value. If a key is absent, merge inserts the value under the new key.

Key handling is case-insensitive.

The following examples use these map definitions:

{{ $m1 := dict "x" "foo" }}
{{ $m2 := dict "x" "bar" "y" "wibble" }}
{{ $m3 := dict "x" "baz" "y" "wobble" "z" (dict "a" "huey") }}

Example 1

{{ $merged := merge $m1 $m2 $m3 }}

{{ $merged.x }}   → baz
{{ $merged.y }}   → wobble
{{ $merged.z.a }} → huey

Example 2

{{ $merged := merge $m3 $m2 $m1 }}

{{ $merged.x }}   → foo
{{ $merged.y }}   → wibble
{{ $merged.z.a }} → huey

Example 3

{{ $merged := merge $m2 $m3 $m1 }}

{{ $merged.x }}   → foo
{{ $merged.y }}   → wobble
{{ $merged.z.a }} → huey

Example 4

{{ $merged := merge $m1 $m3 $m2 }}

{{ $merged.x }}   → bar
{{ $merged.y }}   → wibble
{{ $merged.z.a }} → huey

{{% note %}} Regardless of depth, merging only applies to maps. For slices, use append. {{% /note %}}