【发布时间】:2020-01-11 19:46:51
【问题描述】:
类似于this older answer,我想转储地图中可能使用的值。
在 dart-sass 中是否有一种巧妙的方法可以只转储 map 的键?
@function map-keys($map) {
$keys: ();
@each $key, $_ in $map {
$keys: append($keys, $key);
}
@return $keys;
}
【问题讨论】:
类似于this older answer,我想转储地图中可能使用的值。
在 dart-sass 中是否有一种巧妙的方法可以只转储 map 的键?
@function map-keys($map) {
$keys: ();
@each $key, $_ in $map {
$keys: append($keys, $key);
}
@return $keys;
}
【问题讨论】:
append 函数返回一个new 列表,因此对于每次循环迭代,您都需要重新分配$keys 的值。您可以使用@debug 将列表的值转储到控制台。
SCSS:
@function map-keys($map) {
$keys: ();
@each $key, $_ in $map {
// Add key to list of keys
$keys: append($keys, $key);
}
@return $keys;
}
$colors: (
"red": #f00,
"green": #0f0,
"blue": #00f
);
$color-keys: map-keys($colors);
// Log color keys
@debug $color-keys;
控制台输出:
"red" "green" "blue"
【讨论】:
事实上,地图键周围有一个内置函数。
https://sass-lang.com/documentation/functions/map#map-keys
如果给定一个 sass 映射,map-keys 返回一个键列表。
【讨论】: