在 JavaScript 中,Map 是一个内置对象,它允许我们存储 'key-value' 对,其中 key 和 values 可以是任何数据类型。在 Map 中,两个或多个键不能相同或相同,这意味着所有键都必须是唯一的。
Map() 构造函数(constructor)用于创建新的 Map 对象。可以使用 new 关键字调用它。当使用 new 关键字调用时,它会创建一个新的 Map 对象。如果未提供任何参数,则会创建一个空的 Map 对象。
Map() 构造函数(constructor)只能使用 new 关键字构造。如果我们尝试在没有 'new' 的情况下调用它,则会抛出 TypeError。
语法
以下是 JavaScript Map() 构造函数的语法 -
new Map()
new Map(iterable)
参数
此构造函数接受可选参数。下面描述相同 -
- iterable - 包含键值对的可迭代对象(例如数组或其他 Map)。每个键值对都是一个数组,其中包含两个元素:键和值。
返回值
初始化 Map 构造函数后,将返回一个新的 Map 对象。
示例 1
在下面的示例中,我们将使用 Map() 构造函数创建新的 Map 对象 -
<html>
<body>
<script>
const myMap = new Map([
[1, 'apple'],
[2, 'banana'],
[3, 'cherry']
]);
</script>
</body>
</html>
上面的 Map 对象包含三个键值对。键是 '1'、'2' 和 '3',对应的值分别为 'apple'、'banana' 和 'cherry'。
示例 2
我们还可以在使用 set() 方法创建 Map 对象后将其添加键值对,如下例所示 -
<html>
<body>
<script>
const myMap = new Map();
myMap.set(1, 'apple');
myMap.set(2, 'banana');
myMap.set(3, 'cherry');
</script>
</body>
</html>
“myMap” 对象将包含提供的三个键值对作为元素。
示例 3
我们可以使用 get() 方法访问与 Map 对象中的键关联的值,如以下示例所示 -
<html>
<body>
<script>
const myMap = new Map();
myMap.set(1, 'apple');
myMap.set(2, 'banana');
myMap.set(3, 'cherry');
document.write(myMap.get(1), "<br>");
document.write(myMap.get(2), "<br>");
document.write(myMap.get(3));
</script>
</body>
</html>
上面的程序将打印与 Map 对象中键 '1'、'2' 和 '3' 关联的 “values”。
示例 4
我们还可以使用 has() 方法检查 Map 对象中是否存在特定键,如下例所示 -
<html>
<body>
<script>
const myMap = new Map();
myMap.set(1, 'apple');
myMap.set(2, 'banana');
myMap.set(3, 'cherry');
document.write(myMap.has(2));
</script>
</body>
</html>
它返回 'true',因为键 '2' 存在于 Map 对象中。
示例 5
在此示例中,我们使用 delete() 方法从 Map 对象中删除键值对 -
<html>
<body>
<script>
const myMap = new Map();
myMap.set(1, 'apple');
myMap.set(2, 'banana');
myMap.set(3, 'cherry');
document.write(myMap.delete(2), "<br>"); //true
document.write(myMap.has(2)); //false
</script>
</body>
</html>
上述程序从 Map 对象中删除与键 '2' 关联的键值对。