Javascript 使用映射计算字符串出现次数

Javascript 使用映射计算字符串出现次数,javascript,prototype,Javascript,Prototype,对于一个小示例程序,我需要计算多个字符串的出现次数。 所以我使用一个映射来计数,使用字符串作为键,数字作为值。为此,我向Map对象添加了一个函数: Map.prototype.inc = function(s) { if (this.has(s)) this[s] = this[s]+1 else this[s] = 1 } 这不符合预期。此输入: var test = new Map() test.inc("a"); test.inc("a"

对于一个小示例程序,我需要计算多个字符串的出现次数。 所以我使用一个映射来计数,使用字符串作为键,数字作为值。为此,我向Map对象添加了一个函数:

Map.prototype.inc = function(s) {
     if (this.has(s))  this[s] = this[s]+1 
     else              this[s] = 1
}
这不符合预期。此输入:

var test = new Map()
test.inc("a"); test.inc("a"); test.inc("b");
结果:

测试={a:1,“b:1}

预期的结果是:

{“a”:2,“b”:1}

如果密钥不存在,则将其设置为1。好的
如果键确实存在,则其值仍为1。坏的

调试之后,我发现这个指针总是一个空映射

所以我确实读到了关于这个关键字的文章,实际上它并没有(向我)解释任何事情。这应该是地图,对吗

为什么这不起作用

这是非常简单的代码,我知道这就是为什么我想知道它是如何工作的


我希望有人能帮助我:)

尝试使用
set
get
这样的方法

Map.prototype.inc=函数{
如果(本文件有){
this.set(s,this.get(s)+1;
}否则{
本组(s,1);
}
}
var t=新映射();
t、 股份有限公司(“a”);t、 股份有限公司(“a”);t、 股份有限公司(“b”);
控制台日志(t)