ECMAScript 2015新增了Map
類。我們可以基於ES6的Map
類開發我們的Dictionary
類。
關於ECMAScript 6的Map類的實現細節,請查閱https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map(或http://goo.gl/dm8VP6)。
我們看看原生的Map
類怎麼用。
還是用我們原來測試Dictionary
類的例子:
var map = new Map;
map.set('Gandalf', '[email protected]');
map.set('John', '[email protected]');
map.set('Tyrion', '[email protected]');
console.log(map.has('Gandalf')); //輸出true
console.log(map.size); //輸出3
console.log(map.keys); //輸出["Gandalf", "John", "Tyrion"]
console.log(map.values); //輸出["[email protected]",
"[email protected]", "[email protected]"]
console.log(map.get('Tyrion')); //輸出[email protected]
和我們的Dictionary
類不同,ES6的Map
類的values
方法和keys
方法都返回Iterator
(第2章提到過),而不是值或鍵構成的數組。另一個區別是,我們實現的size
方法返回字典中存儲的值的個數,而ES6的Map
類則有一個size
屬性。
刪除map
中的元素可以用delete
方法:
map.delete('John');
clear
方法會重置map
數據結構,這跟我們在Dictionary
類裡實現的一樣。