Map保留键值对,并记住键的实际插入顺序。映射仅允许存储唯一值。
语法
new Map([iterable])
在没有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"}
从定义中我们知道,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