sass:map
- Dart Sass
- since 1.23.0
- LibSass
- ✗
- Ruby Sass
- ✗
В настоящее время только Dart Sass поддерживает загрузку встроенных модулей с помощью @use
. Пользователи других реализаций должны вместо этого вызывать функции, используя их глобальные имена.
💡 Интересный факт:
Библиотеки и системы проектирования Sass имеют тенденцию разделять и переопределять конфигурации, представленные как вложенные карты (карты, содержащие карты, содержащие карты).
Чтобы помочь вам работать с вложенными картами, некоторые функции карт поддерживают глубокие операции. Например, если вы передадите несколько ключей в map.get()
, он будет следовать этим ключам, чтобы найти желаемую вложенную карту:
map.deep-merge($map1, $map2) //=> map
- Dart Sass
- since 1.27.0
- LibSass
- ✗
- Ruby Sass
- ✗
Идентично map.merge()
, за исключением того, что значения вложенных карт также рекурсивно объединяются.
SCSS Syntax
$helvetica-light: (
"weights": (
"lightest": 100,
"light": 300
)
);
$helvetica-heavy: (
"weights": (
"medium": 500,
"bold": 700
)
);
@debug map.deep-merge($helvetica-light, $helvetica-heavy);
// (
// "weights": (
// "lightest": 100,
// "light": 300,
// "medium": 500,
// "bold": 700
// )
// )
@debug map.merge($helvetica-light, $helvetica-heavy);
// (
// "weights": (
// "medium: 500,
// "bold": 700
// )
// )
Sass Syntax
$helvetica-light: ("weights": ("lightest": 100, "light": 300))
$helvetica-heavy: ("weights": ("medium": 500, "bold": 700))
@debug map.deep-merge($helvetica-light, $helvetica-heavy)
// (
// "weights": (
// "lightest": 100,
// "light": 300,
// "medium": 500,
// "bold": 700
// )
// )
@debug map.merge($helvetica-light, $helvetica-heavy);
// (
// "weights": (
// "medium: 500,
// "bold": 700
// )
// )
map.deep-remove($map, $key, $keys...) //=> map
- Dart Sass
- since 1.27.0
- LibSass
- ✗
- Ruby Sass
- ✗
Если $keys
пусто, возвращает копию $map
без значения, связанного с $key
.
SCSS Syntax
$font-weights: ("regular": 400, "medium": 500, "bold": 700);
@debug map.deep-remove($font-weights, "regular");
// ("medium": 500, "bold": 700)
Sass Syntax
$font-weights: ("regular": 400, "medium": 500, "bold": 700)
@debug map.deep-remove($font-weights, "regular")
// ("medium": 500, "bold": 700)
Если $keys
не пусто, следует за набором ключей, включая $key
и исключая последний ключ в $keys
, слева направо, чтобы найти вложенную карту, предназначенную для обновления.
Возвращает копию $map
, где целевая карта не имеет значения, связанного с последним ключом в $keys
.
SCSS Syntax
$fonts: (
"Helvetica": (
"weights": (
"regular": 400,
"medium": 500,
"bold": 700
)
)
);
@debug map.deep-remove($fonts, "Helvetica", "weights", "regular");
// (
// "Helvetica": (
// "weights: (
// "medium": 500,
// "bold": 700
// )
// )
// )
Sass Syntax
$fonts: ("Helvetica": ("weights": ("regular": 400, "medium": 500, "bold": 700)))
@debug map.deep-remove($fonts, "Helvetica", "weights", "regular")
// (
// "Helvetica": (
// "weights: (
// "medium": 500,
// "bold": 700
// )
// )
// )
map.get($map, $key, $keys...)
map-get($map, $key, $keys...)
Если $keys
пусто, возвращает значение в $map
, связанное с $key
.
Если $map
не имеет значения, связанного с $key
, возвращает null
.
SCSS Syntax
$font-weights: ("regular": 400, "medium": 500, "bold": 700);
@debug map.get($font-weights, "medium"); // 500
@debug map.get($font-weights, "extra-bold"); // null
Sass Syntax
$font-weights: ("regular": 400, "medium": 500, "bold": 700)
@debug map.get($font-weights, "medium") // 500
@debug map.get($font-weights, "extra-bold") // null
- Dart Sass
- since 1.27.0
- LibSass
- ✗
- Ruby Sass
- ✗
Только Dart Sass поддерживает вызов map.get()
с более чем двумя аргументами.
Если $keys
не пусто, следует за набором ключей, включая $key
и исключая последний ключ в $keys
, слева направо, чтобы найти вложенную карту, предназначенную для поиска.
Возвращает значение целевой карты, связанное с последним ключом в $keys
.
Возвращает null
, если карта не имеет значения, связанного с ключом, или если какой-либо ключ в $keys
отсутствует в карте или ссылается на значение, не являющееся картой.
SCSS Syntax
$fonts: (
"Helvetica": (
"weights": (
"regular": 400,
"medium": 500,
"bold": 700
)
)
);
@debug map.get($fonts, "Helvetica", "weights", "regular"); // 400
@debug map.get($fonts, "Helvetica", "colors"); // null
Sass Syntax
$fonts: ("Helvetica": ("weights": ("regular": 400, "medium": 500, "bold": 700)))
@debug map.get($fonts, "Helvetica", "weights", "regular") // 400
@debug map.get($fonts, "Helvetica", "colors") // null
map.has-key($map, $key, $keys...)
map-has-key($map, $key, $keys...) //=> boolean
Если $keys
пусто, возвращает, содержит ли $map
значение, связанное с $key
.
SCSS Syntax
$font-weights: ("regular": 400, "medium": 500, "bold": 700);
@debug map.has-key($font-weights, "regular"); // true
@debug map.has-key($font-weights, "bolder"); // false
Sass Syntax
$font-weights: ("regular": 400, "medium": 500, "bold": 700)
@debug map.has-key($font-weights, "regular") // true
@debug map.has-key($font-weights, "bolder") // false
- Dart Sass
- since 1.27.0
- LibSass
- ✗
- Ruby Sass
- ✗
Только Dart Sass поддерживает вызов map.has-key()
с более чем двумя аргументами.
Если $keys
не пусто, следует за набором ключей, включая $key
и исключая последний ключ в $keys
, слева направо, чтобы найти вложенную карту, предназначенную для поиска.
Возвращает истину, если целевая карта содержит значение, связанное с последним ключом в $keys
.
Возвращает false
, если это не так, или если какой-либо ключ в $keys
отсутствует на карте или ссылается на значение, которое не является картой.
SCSS Syntax
$fonts: (
"Helvetica": (
"weights": (
"regular": 400,
"medium": 500,
"bold": 700
)
)
);
@debug map.has-key($fonts, "Helvetica", "weights", "regular"); // true
@debug map.has-key($fonts, "Helvetica", "colors"); // false
Sass Syntax
$fonts: ("Helvetica": ("weights": ("regular": 400, "medium": 500, "bold": 700)))
@debug map.has-key($fonts, "Helvetica", "weights", "regular") // true
@debug map.has-key($fonts, "Helvetica", "colors") // false
map.keys($map)
map-keys($map) //=> list
Возвращает разделенный запятыми список всех ключей в $map
.
map.merge($map1, $map2)
map-merge($map1, $map2)
map.merge($map1, $keys..., $map2)
map-merge($map1, $keys..., $map2) //=> map
⚠️ Внимание!
На практике фактические аргументы в map.merge($map1, $keys..., $map2)
передаются как map.merge($map1, $args...)
. Они описаны здесь как $map1, $keys..., $map2
только для объяснения.
Если $keys
не переданы, возвращает новую карту со всеми ключами и значениями из $map1
и $map2
.
Если и $map1
, и $map2
имеют один и тот же ключ, значение $map2
имеет приоритет.
Все ключи в возвращенной карте, которые также появляются в $map1
, имеют тот же порядок, что и в $map1
. Новые ключи от $map2
появляются в конце карты.
SCSS Syntax
$light-weights: ("lightest": 100, "light": 300);
$heavy-weights: ("medium": 500, "bold": 700);
@debug map.merge($light-weights, $heavy-weights);
// ("lightest": 100, "light": 300, "medium": 500, "bold": 700)
Sass Syntax
$light-weights: ("lightest": 100, "light": 300)
$heavy-weights: ("medium": 500, "bold": 700)
@debug map.merge($light-weights, $heavy-weights)
// ("lightest": 100, "light": 300, "medium": 500, "bold": 700)
- Dart Sass
- since 1.27.0
- LibSass
- ✗
- Ruby Sass
- ✗
Только Dart Sass поддерживает вызов map.merge()
с более чем двумя аргументами.
Если $keys
не пусто, следует за $keys
, чтобы найти вложенную карту, предназначенную для слияния. Если какой-либо ключ в $keys
отсутствует на карте или ссылается на значение, которое не является картой, устанавливает значение в этом ключе на пустую карту.
Возвращает копию $map1
, где целевая карта заменяется новой картой, которая содержит все ключи и значения как целевой карты, так и $map2
.
SCSS Syntax
$fonts: (
"Helvetica": (
"weights": (
"lightest": 100,
"light": 300
)
)
);
$heavy-weights: ("medium": 500, "bold": 700);
@debug map.merge($fonts, "Helvetica", "weights", $heavy-weights);
// (
// "Helvetica": (
// "weights": (
// "lightest": 100,
// "light": 300,
// "medium": 500,
// "bold": 700
// )
// )
// )
Sass Syntax
$fonts: ("Helvetica": ("weights": ("lightest": 100, "light": 300)))
$heavy-weights: ("medium": 500, "bold": 700)
@debug map.merge($fonts, "Helvetica", "weights", $heavy-weights)
// (
// "Helvetica": (
// "weights": (
// "lightest": 100,
// "light": 300,
// "medium": 500,
// "bold": 700
// )
// )
// )
map.remove($map, $keys...)
map-remove($map, $keys...) //=> map
Возвращает копию $map
без каких-либо значений, связанных с $keys
.
Если ключ в $keys
не имеет связанного значения в $map
, он игнорируется.
SCSS Syntax
$font-weights: ("regular": 400, "medium": 500, "bold": 700);
@debug map.remove($font-weights, "regular"); // ("medium": 500, "bold": 700)
@debug map.remove($font-weights, "regular", "bold"); // ("medium": 500)
@debug map.remove($font-weights, "bolder");
// ("regular": 400, "medium": 500, "bold": 700)
Sass Syntax
$font-weights: ("regular": 400, "medium": 500, "bold": 700)
@debug map.remove($font-weights, "regular") // ("medium": 500, "bold": 700)
@debug map.remove($font-weights, "regular", "bold") // ("medium": 500)
@debug map.remove($font-weights, "bolder")
// ("regular": 400, "medium": 500, "bold": 700)
map.set($map, $key, $value)
map.set($map, $keys..., $key, $value) //=> map
⚠️ Внимание!
На практике фактические аргументы в map.set($map, $keys..., $key, $value)
передаются как map.set($map, $args...)
. Они описаны здесь как $map, $keys..., $key, $value
только в целях объяснения.
Если $keys
не переданы, возвращает копию $map
со значением в $key
, установленным в $value
.
SCSS Syntax
$font-weights: ("regular": 400, "medium": 500, "bold": 700);
@debug map.set($font-weights, "regular", 300);
// ("regular": 300, "medium": 500, "bold": 700)
Sass Syntax
$font-weights: ("regular": 400, "medium": 500, "bold": 700)
@debug map.set($font-weights, "regular", 300)
// ("regular": 300, "medium": 500, "bold": 700)
- Dart Sass
- since 1.27.0
- LibSass
- ✗
- Ruby Sass
- ✗
Только Dart Sass поддерживает вызов map.set()
с более чем тремя аргументами.
Если переданы $keys
, следует за $keys
, чтобы найти вложенную карту, предназначенную для обновления. Если какой-либо ключ в $keys
отсутствует на карте или ссылается на значение, которое не является картой, устанавливает значение в этом ключе на пустую карту.
Возвращает копию $map
со значением целевой карты в $key
, установленным в $value
.
SCSS Syntax
$fonts: (
"Helvetica": (
"weights": (
"regular": 400,
"medium": 500,
"bold": 700
)
)
);
@debug map.set($fonts, "Helvetica", "weights", "regular", 300);
// (
// "Helvetica": (
// "weights": (
// "regular": 300,
// "medium": 500,
// "bold": 700
// )
// )
// )
Sass Syntax
$fonts: ("Helvetica": ("weights": ("regular": 400, "medium": 500, "bold": 700)))
@debug map.set($fonts, "Helvetica", "weights", "regular", 300)
// (
// "Helvetica": (
// "weights": (
// "regular": 300,
// "medium": 500,
// "bold": 700
// )
// )
// )
map.values($map)
map-values($map) //=> list
Возвращает разделенный запятыми список всех значений в $map
.