我想构建一个hashmap类,或者使用该语言附带的类.
索引是整数.如果我尝试使用数组执行此操作,我会在调试器上看到,而不是数组的大小等于更高的整数键.
也就是说,如果我的HashMap具有两个元素, Map[0]= 'word1'
并且Map[1023]= 'word2'
我可以看到数组的大小为1024.我不想浪费这么大的空间.
我无法对密钥的分配方式做出任何假设.
ECMAScript 6引入了一个真正的Map类型,可以按如下方式使用:
const m = new Map(); m.set(0, "word1"); m.set(1023, "word2"); for(const [key, value] of m) { console.log(key, value, typeof key); }
注意如何key
仍然是一个数字 - 使用对象文字,键总是字符串.它还提供了size
计算键/值对的属性:
const m = new Map(); m.set(0, "word1"); m.set(1023, "word2"); console.log(m.size); // 2
Babel REPL示例