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