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
广告