當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Javascript Map.entries( )用法及代碼示例


什麽是JavaScript中的Map?

  • Map是JavaScript中的數據結構,它允許存儲[鍵,值]對,其中任何值都可以用作鍵或值。
  • Map集合中的鍵和值可以是任何類型,並且如果使用集合中已存在的鍵將值添加到Map集合中,則新值將替換舊值。
  • 映射對象中元素的迭代按插入順序完成,並且“for…”循環為每次迭代返回所有[鍵,值]對的數組。

JavaScript中對象與Map之間的差異
這兩種數據結構在許多方麵都是相似的,例如都使用鍵存儲值,允許使用鍵檢索這些值,刪除鍵並驗證鍵是否具有任何值。但是,JavaScript中的對象和Map之間存在相當大的差異,這使得在許多情況下使用Map成為更好,更可取的選擇。

  • 映射中使用的鍵可以是任何類型的值,例如函數,對象等,而對象中的鍵則限於符號和字符串。
  • 通過使用size屬性可以輕鬆知道Map的大小,但是在處理對象時,必須手動確定大小。
  • 在要求涉及頻繁添加和刪除[鍵,值]對的情況下,最好使用Map,因為map是一種迭代數據類型,可以直接進行迭代,而迭代對象需要以特定方式獲取其鍵。

JavaScript中的Map.entries()方法
JavaScript中的Map.entries()方法用於返回一個迭代器對象,該對象包含Map每個元素的所有[鍵,值]對。它按插入順序返回映射的所有元素的[鍵,值]對。
Map.entries()方法不需要傳遞任何參數,並返回Map的迭代器對象。
應用範圍:
每當我們想要使用迭代器對象獲取Map每個元素的所有[鍵,值]對時,都將使用Map.entries()方法。
用法:


mapObj.entries()

Parameters Used:

  • It does not require any parameters to be passed.

返回值:

  • The Map.entries() method returns the [key, value] pairs of all the elements of a map in the order of their insertion.

下麵提供上述函數的示例。

例:

Input:var myMap = new Map();
        myMap.set(0, 'geeksforgeeks');
        myMap.set(1, 'is an online portal');
        myMap.set(2, 'for geeks');
        var iterator_obj=myMap.entries();
        document.write(iterator_obj.next().value,"<br>");
        document.write(iterator_obj.next().value,"<br>");
        document.write(iterator_obj.next().value,"<br>");


Output:Array [0, "geeksforgeeks"]
         Array [1, "is an online portal"]
         Array [2, "for geeks"]

說明:在此示例中,已使用三個[鍵,值]對創建了一個映射對象“myMap”,並創建了一個迭代器對象“iterator_obj”方法,該方法使用Map.entries()方法返回以下所有元素的[鍵,值]對:按插入順序排列的Map。

代碼1:

<script> 
    // creating a map object 
    var myMap = new Map(); 
  
// Adding [key, value] pair to the map 
myMap.set(0, 'geeksforgeeks'); 
myMap.set(1, 'is an online portal'); 
myMap.set(2, 'for geeks'); 
  
// creating an iterator object using Map.entries() method 
var iterator_obj = myMap.entries(); 
  
// displaying the [key, value] pairs of all the elements of the map 
document.write(iterator_obj.next().value,"</br>"); 
document.write(iterator_obj.next().value,"</br>"); 
document.write(iterator_obj.next().value,"</br>"); 
  
</script>                    

輸出:

     Array [0, "geeksforgeeks"]
     Array [1, "is an online portal"]
     Array [2, "for geeks"]

代碼2:

<script> 
    // creating a map object 
    var myMap = new Map(); 
  
// Adding [key, value] pair to the map 
myMap.set(0, 'Maps'); 
myMap.set(1, 'in JavaScript'); 
  
// creating an iterator object using Map.entries() method 
var iterator_obj = myMap.entries(); 
  
// displaying the [key, value] pairs of all the elements of the map 
document.write(iterator_obj.next().value,"</br>"); 
document.write(iterator_obj.next().value,"</br>"); 
  
</script>                    

輸出:

     Array [0, "Maps"]
     Array [1, "in JavaScript"]

異常:

  • 如果變量不是Map類型,則Map.entries()操作將引發TypeError。
  • 如果與映射的[鍵,值]對相比,使用“iterator_obj.next().value”的次數更多,則Map.entries()函數將為所有這些情況返回undefined。

參考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/entries




注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 Map.entries() In JavaScript。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。