JavaScript中Map的用途是什么?

映射

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

语法

new Map([iterable])

情况1:缺少映射

在没有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将记住键的实际插入顺序,它显示所有键和值对,例如'{}'作为键,而'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