什麽是JavaScript中的Map?
- Map是JavaScript中的數據結構,它允許存儲[鍵,值]對,其中任何值都可以用作鍵或值。
- map集合中的鍵和值可以是任何類型,並且如果使用集合中已存在的鍵將值添加到map集合中,則新值將替換舊值。
- 映射對象中元素的迭代按插入順序完成,並且“for…”循環為每次迭代返回所有[鍵,值]對的數組。
JavaScript中對象與Map之間的區別
這兩種數據結構在許多方麵都是相似的,例如都使用鍵存儲值,允許使用鍵檢索這些值,刪除鍵並驗證鍵是否具有任何值。但是,JavaScript中的對象和Map之間存在相當大的差異,這使得在許多情況下使用Map成為更好,更可取的選擇。
- 映射中使用的鍵可以是任何類型的值,例如函數,對象等,而對象中的鍵則限於符號和字符串。
- 通過使用size屬性可以輕鬆知道Map的大小,但是在處理對象時,必須手動確定大小。
- 在要求涉及頻繁添加和刪除[鍵,值]對的情況下,最好使用Map,因為map是一種迭代數據類型,可以直接迭代,而迭代對象需要以特定方式獲取其鍵。
JavaScript中的Map.delete()方法
JavaScript中的Map.delete()方法用於刪除Map中存在的所有元素中的指定元素。
Map.delete()方法獲取需要從映射中刪除的鍵,從而刪除與該鍵關聯的元素並返回true。如果 key 不存在,則返回false。
應用範圍:
- Map.delete()用於刪除Map中存在的所有元素中與鍵關聯的元素。
用法:
my_map.delete(key)
Parameters Used:
- key: 與此鍵關聯的元素將從Map中刪除
返回值:
- 如果存在要刪除其關聯元素的鍵(作為參數傳遞),則Map.delete()方法返回true。否則返回false。
例子:
Input: my_map.set(1, 'first'); my_map.set(2, 'second'); my_map.set(3,'third'); my_map.set(4,'fourth'); document.write(my_map.delete(3)); Output:true
說明:鍵“ 3”出現在Map中,因此與之關聯的元素被刪除並返回true
Input: my_map.set(1, 'first'); my_map.set(2, 'second'); my_map.set(3,'third'); my_map.set(4,'fourth'); document.write(my_map.delete(5)); Output:false
說明:鍵“ 5”在Map中不存在,因此返回false。
代碼1:
<script>
// creating a map object
var my_map = new Map();
// Adding [key, value] pair to the map
my_map.set(1, 'first');
my_map.set(2, 'second');
my_map.set(3,'third');
my_map.set(4,'fourth');
// will display true as key '3'
// is present and its associated
// element is removed as well
document.write(my_map.delete(3),"</br>","</br>");
// elements left in the map after deletion
document.write("key-value pair of the map",
" after deletion-","</br>");
my_map.forEach(function (item, key, mapObj)
{
document.write(key.toString(),":",
" ",item.toString() + "<br />");
});
</script>
輸出:
true key-value pair of the map after deletion- 1:first 2:second 4:fourth
代碼2:
<script>
// creating a map object
var my_map = new Map();
// Adding [key, value] pair to the map
my_map.set(1, 'first');
my_map.set(2, 'second');
my_map.set(3,'third');
my_map.set(4,'fourth');
// will display false as key '5'
// is not present and its associated
// element is removed as well
document.write(my_map.delete(5),
"</br>","</br>");
// elements left in the map after deletion
document.write("key-value pair of the map",
" after deletion-","</br>");
my_map.forEach(function (item, key, mapObj) {
document.write(key.toString(),":"," ",
item.toString() + "<br />");
});
</script>
輸出:
false key-value pair of the map after deletion- 1:first 2:second 3:third 4:fourth
-
錯誤和異常:
- 如果作為參數傳遞給函數的鍵在映射中不存在,則返回false。本質上,它既不會引發任何異常,也不會有任何錯誤。
Map.clear(),Map.erase()和此函數在工作上的差異
Map.clear()刪除Map的所有鍵-值對,並將Map的大小減小為零。而Map.erase()刪除指定的映射值,其鍵作為參數或迭代器或在範圍內傳遞以刪除對。
注:本文由純淨天空篩選整理自akash1295大神的英文原創作品 Map.delete() In JavaScript。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。