JavaScript - Map.keys() 方法



在 JavaScript 中,Map.keys() 方法不接受任何引數,並返回一個新的迭代器物件,該物件包含 Map 物件中每個元素的,按照插入順序排列。Map 物件是鍵值對的集合,其中每個鍵都是唯一的,可以是任何資料型別,每個值也可以是任何資料型別。

此方法幾乎與所有瀏覽器相容,例如 Chrome、Edge、FireFox、Opera 和 Safari。

語法

以下是 JavaScript Map.keys() 方法的語法:

keys()

引數

此方法不接受任何引數。

返回值

此方法返回一個新的迭代器物件,其中包含 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”。

廣告