JavaScript 中的 Map.entries() 方法用于返回一个新的 map Iterator 对象,该对象迭代 map 的 [key-value] 对。迭代器的每个元素都是一个包含两个元素的数组:第一个元素是键,第二个元素是 map 中的相应值。迭代器遵循 map 中元素的插入顺序。
JavaScript Map.entries() 方法不接受任何参数;相反,它返回 Map 的新 Iterator 对象。
语法
以下是 JavaScript Map.entries() 方法的语法 -
entries()
参数
此方法不接受任何参数。
返回值
此方法返回一个迭代器对象,其中包含 Map 中的 [key, value] 对。
示例 1
在下面的示例中,我们使用 JavaScript Map.entries() 方法按插入顺序返回 Map 对象的所有元素的 [key, value] 对。
<html>
<body>
<script>
const map = new Map();
map.set('a', 'apple');
map.set('b', 'banana');
map.set('c', 'cherry');
const iterator = map.entries();
document.write(iterator.next().value, "<br>");
document.write(iterator.next().value, "<br>");
document.write(iterator.next().value);
</script>
</body>
</html>
正如我们在执行上述程序后所看到的,它按插入顺序返回了 Map 对象的所有元素。
示例 2
当 Map 对象为空时,调用 iterator.next().value 将返回 “undefined”,因为 Map 中没有要检索的键值对 -
<html>
<body>
<script>
const map = new Map();
const iterator = map.entries();
document.write(iterator.next().value);
</script>
</body>
</html>
因此,当 map 为空时,尝试访问 iterator.next() 结果的 value 属性将得到 “undefined”。
示例 3
在此示例中, for...of 循环遍历 Map 中的每个条目,并打印每个 [key, value] 对 -
<html>
<body>
<script>
const map = new Map();
map.set('a', 'apple');
map.set('b', 'banana');
map.set('c', 'cherry');
for (let entry of map.entries()) {
document.write(entry, "<br>");
}
</script>
</body>
</html>
如果我们执行上述程序,它会打印 Map 对象存在的所有键值对。
示例 4
Array.from() 方法将 map 条目的迭代器转换为 [key, value] 对的常规数组。
<html>
<body>
<script>
const map = new Map();
map.set('a', 'apple');
map.set('b', 'banana');
map.set('c', 'cherry');
const entriesArray = Array.from(map.entries());
document.write(entriesArray); // [['one', 1], ['two', 2], ['three', 3]]
</script>
</body>
</html>
如果我们执行上面的程序,它会将所有键值对打印为常规数组。