JavaScript 中的 Map 有什么用?

javascriptobject oriented programmingprogramming

Map

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

语法

new Map([iterable])

情况 1:没有 Map

在没有 Map 的情况下,由于 javascript 对象只支持一个键对象,如果我们提供多个键,则只会记住最后一个键。在下面的例子中,尽管提供了许多键(例如 a 和 b),但只记住 b 并显示为输出。因此,为了消除这个缺点,"Map"在 javascript 中应运而生。

示例

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

case-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)); // 使用 Map 显示键
   document.write((key, value));               // 使用 Map 显示值
}
</script>
</body>
</html>

输出

{}a {"num":3}b

相关文章