JavaScript - Map.entries() 方法



Map.entries() 方法在 JavaScript 中用于返回一个新的 Map 迭代器对象,该对象迭代 Map 中的 [键-值] 对。迭代器的每个元素都是一个包含两个元素的数组:第一个元素是键,第二个元素是 Map 中对应的值。迭代器遵循 Map 中元素的插入顺序。

JavaScript Map.entries() 方法不接受任何参数;相反,它返回 Map 的一个新的迭代器对象。

语法

以下是 JavaScript Map.entries() 方法的语法:

entries()

参数

此方法不接受任何参数。

返回值

此方法返回一个包含 Map 中 [键,值] 对的迭代器对象。

示例

示例 1

在以下示例中,我们使用 JavaScript Map.entries() 方法按插入顺序返回 Map 对象中所有元素的 [键,值] 对。

<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 中的每个条目,并打印每个 [键,值] 对:

<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 条目的迭代器转换为 [键,值] 对的常规数组。

<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>

如果我们执行上述程序,它将所有键值对作为常规数组打印出来。

广告