如何 know/get 地图中的最后一个或第一个键?

How do I know/get the last or first key in a map?

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

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

如何 know/get 映射中的最后一个或第一个键?

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

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

因此,仅将此作为一种可能的方法:对于正确的解决方案,我们必须等待 Sass 大师 ;)

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