什麽是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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。