首页 » 学习JavaScript数据结构与算法(第2版) » 学习JavaScript数据结构与算法(第2版)全文在线阅读

《学习JavaScript数据结构与算法(第2版)》7.3 ES6Map类

关灯直达底部

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')); //输出trueconsole.log(map.size); //输出3console.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类里实现的一样。