Javascript 使用映射计算字符串出现次数
对于一个小示例程序,我需要计算多个字符串的出现次数。 所以我使用一个映射来计数,使用字符串作为键,数字作为值。为此,我向Map对象添加了一个函数: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.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)代码>