# map.get()

The modified `map.get()` function returns the value associated with [`$key`](#usdkey) in [`$map`](#usdmap), and returns [`$fallback`](#usdfallback-null) if returned is `null`.

{% hint style="info" %}
Modified by removing arbitrary argument `$keys...` and instead, adding [`$fallback`](#usdfallback-null) value. To get the nested value use key as comma-separated list. This way of providing key as comma-separated list is consistent with [`map.remove()`](https://docs.angular-package.dev/sass/map/map.remove) and [`map.set()`](https://docs.angular-package.dev/sass/map/map.set) functions.
{% endhint %}

{% code lineNumbers="true" %}

```scss
// Sass.
@use 'sass:list';
@use 'sass:map';
@use 'sass:meta';

// The `map.get()` function.
@function get($map, $key, $fallback: null) {
  @return if(
      meta.type-of($map) == map and list.length($key) > 0,
      if(
        list.separator($key) == comma,
        map.get($map, $key...),
        map.get($map, $key)
      ),
      $fallback
    )
    or $fallback;
}
```

{% endcode %}

{% embed url="<https://github.com/angular-package/sass/blob/main/map/_map.get.function.scss>" %}

### Parameters

#### `$map`

A map to get the value by using [`$key`](#usdkey).

#### `$key`

The key used to get the value from [`$map`](#usdmap).

#### `$fallback: null`

The fallback value if returned is `null`.

### Return

The return value is the value associated with [`$key`](#usdkey) from [`$map`](#usdmap), if `null` returns [`$fallback`](#usdfallback-null).

## Examples

```scss
// Use.
@use '@angular-package/sass/map';

// Examples.
$-map: (
  light theme: (
    primary palette: (
      primary: primary color,
      primary dark: primary color dark
    )
  ),
  (dark theme, normal theme): (
    silver: #f1f1f1,
    red: #d72000,
  )
);

// simple key
@debug map.get($-map, light theme); // (primary palette: (primary: primary color, primary dark: primary color dark))

// nested key
@debug map.get($-map, (light theme, primary palette)); // (primary: primary color, primary dark: primary color dark)

// null
@debug map.get($-map, wrong key); // null

// fallback
@debug map.get($-map, wrong key, (must be: this value)); // (must be: this value)

```
