我如何知道/获取地图中的最后一个或第一把钥匙?

时间:2018-07-24 06:12:12

标签: sass scss-mixins

我有一个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
         }
   ////////////////////////////
   }
}

1 个答案:

答案 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
    }
   }
}