JavaScript 中 Map 的用途是什么?


映射

映射存储键值对,并记住键的实际插入顺序。映射只允许存储唯一值。

语法

new Map([iterable])

情况 1:没有 Map

如果没有 Map,由于 JavaScript 对象只支持一个键对象,如果提供了多个键,只会记住最后一个键值。 在以下示例中,尽管提供了 a 和 b 等多个键,但只有 b 被记住并显示为输出。因此,为了消除这个缺点,JavaScript 中出现了“Map”。

示例

实时演示

<html>
<body>
<script>
   const x = {};
   const a = {};
   const b = {
      num:3
   }
   x[a] = "a";
   x[b] = "b";
   document.write(JSON.stringify(x));
</script>
</body>
</html>

输出

{"[object Object]":"b"}

情况 2:有 Map

正如我们从定义中了解的那样,Map 将记住键的实际插入顺序,它会显示所有键值对,例如 '{}' 为键,'a' 有一个值等,如输出所示。

示例

实时演示

<html>
<body>
<script>
   const a = {};
   const b = {
      num:3
   }
   const map = new Map();
   map.set(a, "a").set(b, "b");
   for(let[key, value] of map.entries()){
   document.write(JSON.stringify(key, value)); // displaying key using Map
   document.write((key, value));               // displaying value using Map
}
</script>
</body>
</html>

输出

{}a {"num":3}b

更新于: 2019 年 7 月 30 日

189 次浏览

开启你的 职业

完成课程,获得认证

入门
广告