JavaScript - Map.keys() 方法
在 JavaScript 中,Map.keys() 方法不接受任何参数,并返回一个新的迭代器对象,该对象包含 Map 对象中每个元素的 keys(按插入顺序排列)。 Map 对象是键值对的集合,其中每个键都是唯一的,可以是任何数据类型,每个值也可以是任何数据类型。
此方法几乎兼容所有浏览器,例如 Chrome、Edge、FireFox、Opera 和 Safari。
语法
以下是 JavaScript Map.keys() 方法的语法 -
keys()
参数
此方法不接受任何参数。
返回值
此方法返回一个新的 Iterator 对象,其中包含按插入顺序排列的 Map 键。
示例
示例 1
在下面的示例中,我们创建一个 Map,添加一些键值对对,然后使用 Map.keys() 方法遍历键,并使用 for...of 循环根据 keys() 方法的结果按插入顺序打印它们 -
<html>
<body>
<script>
const map = new Map();
map.set('a', 'apple');
map.set('b', 'banana');
map.set('c', 'cherry');
const keysIterator = map.keys();
for (let key of keysIterator) {
document.write(key, "<br>");
}
</script>
</body>
</html>
上述程序返回一个新的集合迭代器对象"keysIterator",其中包含此 Map 中每个元素的"键",按插入顺序排列。
示例 2
在此示例中,我们使用 keys() 方法为 Map 中的键创建一个迭代器。然后,我们使用迭代器上的 next() 方法手动检索每个键元素 -
<html>
<body>
<script>
const map = new Map();
map.set('a', 'apple');
map.set('b', 'banana');
map.set('c', 'cherry');
const iterator = map.keys();
document.write(iterator.next().value, "<br>");
document.write(iterator.next().value, "<br>");
document.write(iterator.next().value);
</script>
</body>
</html>
如果我们执行上述程序,它会按插入顺序打印集合中存在的每个键。
示例 3
这里,Map 对象为空,我们尝试使用迭代器上的 next() 方法检索元素 -
<html>
<body>
<script>
const map = new Map();
const iterator = map.keys();
document.write(iterator.next().value);
</script>
</body>
</html>
返回结果为"undefined"。
示例 4
此处,"iterator.next().done"将返回"true",表示不存在其他键 -
<html>
<body>
<script>
const map = new Map();
map.set('a', 'apple');
map.set('b', 'banana');
map.set('c', 'cherry');
const iterator = map.keys();
document.write(iterator.next().value, "<br>");
document.write(iterator.next().value, "<br>");
document.write(iterator.next().value, "<br>");
document.write(iterator.next().done);
</script>
</body>
</html>
如果我们执行上述程序,它会按插入顺序打印集合中存在的每个键,并返回"true",因为集合中的所有键都已完成。

