JavaScript - Map.keys() 方法



在 JavaScript 中,Map.keys() 方法不接受任何参数,并返回一个新的迭代器对象,该对象包含对象中存在的每个元素的键(按插入顺序排列)。Map 对象是键值对的集合,其中每个键都是唯一的,可以是任何数据类型,每个值也可以是任何数据类型。

此方法几乎兼容所有浏览器,例如 Chrome、Edge、FireFox、Opera 和 Safari。

语法

以下是 JavaScript Map.keys() 方法的语法 -


 keys()

参数

此方法不接受任何参数。

返回值

此方法返回一个新的 Iterator 对象,其中包含按插入顺序排列的 Map 的键。

示例 1

在下面的示例中,我们将创建一个 Map,添加一些键值对,然后使用 Map.keys() 方法遍历键,并使用 for...of 循环 -


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

上面的程序返回一个新的 set iterator 对象 “keysIterator”,它包含此 Map 中每个元素的 “key” (按插入顺序排列)。

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

如果我们执行上述程序,它会按插入顺序打印 set 中的每个键。

示例 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”。