• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • sass:map

    Sass 库和设计系统倾向于共享和覆盖表示为嵌套映射(包含映射的映射的映射)的配置。为了帮助您使用嵌套地图,一些地图函数支持深度操作。例如,如果您将多个键传递给map.get(),它将按照这些键找到所需的嵌套映射:
    $config: (a: (b: (c: d)));
    @debug map.get($config, a, b, c); // d
    


    map.deep-merge()

    map.deep-merge($map1, $map2) //=> map
    

    map.merge()相同,只是嵌套的映射值也被递归合并。

    $helvetica-light: (
      "weights": (
        "lightest": 100,
        "light": 300
      )
    );
    $helvetica-heavy: (
      "weights": (
        "medium": 500,
        "bold": 700
      )
    );
    
    @debug map.deep-merge($helvetica-light, $helvetica-heavy);
    // (
    //   "weights": (
    //     "lightest": 100,
    //     "light": 300,
    //     "medium": 500,
    //     "bold": 700
    //   )
    // )
    @debug map.merge($helvetica-light, $helvetica-heavy);
    // (
    //   "weights": (
    //     "medium: 500,
    //     "bold": 700
    //   )
    // )
    


    map.deep-remove()

    map.deep-remove($map, $key, $keys...) //=> map
    

    如果$key为空,则返回没有与$key关联的值的$map副本。

    $font-weights: ("regular": 400, "medium": 500, "bold": 700);
    
    @debug map.deep-remove($font-weights, "regular");
    // ("medium": 500, "bold": 700)
    

    如果$keys不为空,则遵循包括$key和不包括$keys中最后一个键的键集,从左到右查找要更新的嵌套映射。返回$map的副本,其中目标映射没有与$keys中最后一个键关联的值。

    $fonts: (
      "Helvetica": (
        "weights": (
          "regular": 400,
          "medium": 500,
          "bold": 700
        )
      )
    );
    
    @debug map.deep-remove($fonts, "Helvetica", "weights", "regular");
    // (
    //   "Helvetica": (
    //     "weights: (
    //       "medium": 500,
    //       "bold": 700
    //     )
    //   )
    // )
    


    map.get()

    map.get($map, $key, $keys...)
    map-get($map, $key, $keys...)
    

    如果$key为空,则返回与$key关联的$map中的值。如果$map没有与$key关联的值,则返回null

    $font-weights: ("regular": 400, "medium": 500, "bold": 700);
    
    @debug map.get($font-weights, "medium"); // 500
    @debug map.get($font-weights, "extra-bold"); // null
    

    如果$keys不为空,则遵循包括$key和不包括$keys中最后一个键的键集,从左到右查找要搜索的嵌套映射。返回与$keys中最后一个键相关联的目标映射中的值。如果映射没有与键关联的值,或者映射中缺少$keys中的任何键或引用了非映射的值,则返回null

    $fonts: (
      "Helvetica": (
        "weights": (
          "regular": 400,
          "medium": 500,
          "bold": 700
        )
      )
    );
    
    @debug map.get($fonts, "Helvetica", "weights", "regular"); // 400
    @debug map.get($fonts, "Helvetica", "colors"); // null
    


    map.has-key()

    map.has-key($map, $key, $keys...)
    map-has-key($map, $key, $keys...)
    

    如果$keys为空,则返回是否$map包含与$key关联的值。

    $font-weights: ("regular": 400, "medium": 500, "bold": 700);
    
    @debug map.has-key($font-weights, "regular"); // true
    @debug map.has-key($font-weights, "bolder"); // false
    

    如果$keys不为空,则按照包含$key和排除$keys中最后一个键的键集,从左到右查找要搜索的嵌套映射。如果目标映射包含与$keys中最后一个键相关联的值,则返回true。如果不存在,或者如果映射中缺少$keys中的任何键或引用的值不是映射,则返回false

    $fonts: (
      "Helvetica": (
        "weights": (
          "regular": 400,
          "medium": 500,
          "bold": 700
        )
      )
    );
    
    @debug map.has-key($fonts, "Helvetica", "weights", "regular"); // true
    @debug map.has-key($fonts, "Helvetica", "colors"); // false
    


    map.keys()

    map.keys($map)
    map-keys($map) //=> map
    
    $font-weights: ("regular": 400, "medium": 500, "bold": 700);
    
    @debug map.keys($font-weights); // "regular", "medium", "bold"
    


    map.merge()

    map.merge($map1,$map2)
    map-merge($map1,$map2)
    map.merge($map1,$keys..., $map2)
    map-merge($map1,$keys..., $map2) //=> map
    
    ⚠️注意!
    在实践中,实际参数map.merge($map1,$keys...,$map2)map.merge($map1,$args...).此处对其进行描述$map1,$keys...,$map2仅用于说明目的。

    如果未传递任何$keys,则返回一个新映射,其中包含来自$map1$map2的所有键和值。如果$map1$map2具有相同的键,则优先考虑$map2的值。返回的映射中也出现在$map1中的所有键的顺序与在$map1中的顺序相同。$map2中的新键显示在地图的末尾。

    $light-weights: ("lightest": 100, "light": 300);
    $heavy-weights: ("medium": 500, "bold": 700);
    
    @debug map.merge($light-weights, $heavy-weights);
    // ("lightest": 100, "light": 300, "medium": 500, "bold": 700)
    

    如果$keys不为空,则按照$keys查找要合并的嵌套映射。如果映射中缺少$keys中的任何键或引用的值不是映射,请将该键处的值设置为空映射。返回$map1的副本,其中目标映射被包含目标映射和$map2中的所有键和值的新映射替换。

    $fonts: (
      "Helvetica": (
        "weights": (
          "lightest": 100,
          "light": 300
        )
      )
    );
    $heavy-weights: ("medium": 500, "bold": 700);
    
    @debug map.merge($fonts, "Helvetica", "weights", $heavy-weights);
    // (
    //   "Helvetica": (
    //     "weights": (
    //       "lightest": 100,
    //       "light": 300,
    //       "medium": 500,
    //       "bold": 700
    //     )
    //   )
    // )
    


    map.remove()

    map.remove($map, $keys...)
    map-keys($map, $keys...) //=> map
    

    返回没有任何与$keys关联的值的$map副本。如果$keys中的键在$map中没有关联值,则忽略该键。

    $font-weights: ("regular": 400, "medium": 500, "bold": 700);
    
    @debug map.remove($font-weights, "regular"); // ("medium": 500, "bold": 700)
    @debug map.remove($font-weights, "regular", "bold"); // ("medium": 500)
    @debug map.remove($font-weights, "bolder");
    // ("regular": 400, "medium": 500, "bold": 700)
    


    map.set()

    map.set($map, $key, $value)
    map.set($map, $keys..., $key, $value) //=> map
    
    在实践中,实际参数map.set($map,$keys...,$key,$value)作为映射传递。map.set($map,$args...)。它们在这里被描述为$map,$keys...,$key,$value仅用于说明目的。

    如果未传递$keys,则返回$map的副本,其中$key处的值设置为$value

    $font-weights: ("regular": 400, "medium": 500, "bold": 700);
    
    @debug map.set($font-weights, "regular", 300);
    // ("regular": 300, "medium": 500, "bold": 700)
    

    如果传递了$keys,则按照$keys查找要更新的嵌套映射。如果映射中缺少$keys中的任何键或引用的值不是映射,请将该键处的值设置为空映射。返回一个$map的副本,目标$map$key处的值设置为$value

    SCSS 语法
    $fonts: (
      "Helvetica": (
        "weights": (
          "regular": 400,
          "medium": 500,
          "bold": 700
        )
      )
    );
    
    @debug map.set($fonts, "Helvetica", "weights", "regular", 300);
    // (
    //   "Helvetica": (
    //     "weights": (
    //       "regular": 300,
    //       "medium": 500,
    //       "bold": 700
    //     )
    //   )
    // )
    


    map.values()

    map.values($map)
    map-values($map) //=> map
    

    返回$map中所有值的逗号分隔列表。

    $font-weights: ("regular": 400, "medium": 500, "bold": 700);
    
    @debug map.values($font-weights); // 400, 500, 700
    

    上篇:sass:list

    下篇:sass:math