JavaScript - Map.entries() 方法



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>

如果我们执行上面的程序,它会将所有键值对打印为常规数组。