我有一个mixin,在其中循环浏览地图。我的某些实用程序不适用于地图中的第一个或最后一个键。
我有时可能会向地图添加新的键。我可以使用@if="sm-2"
直接检查键的值,但是我也不想修改所有的“ for / each循环”。
如何知道/获取地图中的最后一个或第一个键?
@mixin utility_generator {
@each $bp in map-keys($map) {
/////////////////////////////////
// @if not last_key/first_key {
@include utility($bp) {
@content
}
////////////////////////////
}
}
答案 0 :(得分:1)
我正在阅读一篇非常有趣的文章,有关如何在Sass循环中提取索引号:https://shayhowe.com/finding-index-position-sass-map-loop/。因此,使用该技术,我为您准备了问题,以为您找到解决方案。但是,好,您必须修改循环,并且我知道,您说“ 不,不,不,不,不,... ”。好的,但是也许“他不知道这个解决方案,它可能对他有用”,我想...
因此,仅将此作为一种可能的方法:为了找到适当的解决方案,我们必须等待The Sass Master;)
https://www.sassmeister.com/gist/36ae50657779d40d5537e46f2ad03438
$myList: (
"key-1": "value-a",
"key-2": "value-b",
"key-3": "value-c",
"key-4": "value-d",
"key-5": "value-e",
"key-6": "value-f"
);
@mixin utility_generator {
@each $key, $value in $myList {
$var : index(($myList), ($key $value)) !global;
$myKey : $key !global;
$myValue : $value !global;
@if $var !=1 and $var != length($myList){
@content
}
}
}