1

我有一个mixin,我在地图上循环。我的一些实用程序不适用于地图中的第一个或最后一个键。

有时,我可能会向地图添加新键。我可以使用 an@if="sm-2"直接检查键的值,但我也不想修改所有“for/each 循环”。

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

@mixin utility_generator {
   @each $bp in map-keys($map) {
   /////////////////////////////////
   // @if not last_key/first_key { 
         @include utility($bp) {
            @content
         }
   ////////////////////////////
   }
}
4

1 回答 1

3

我正在阅读一篇关于如何在 sass 循环中提取索引号的非常有趣的文章:https ://shayhowe.com/finding-index-position-sass-map-loop/ 。因此,使用该技术,我预先确定了您的问题,以便为您找到解决方案。但是,好吧,你必须修改你的循环,我知道,你说“不不不不不不不...... ”。好的,但也许'他不知道这个解决方案,它可能对他有用',我想......

因此,仅将此作为一种可能的方式:对于正确的解决方案,我们必须等待 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
    }
   }
}
于 2018-07-24T09:15:35.247 回答