增量运算符返回NaN

mcg*_*ilm 5 javascript increment nan post-increment

我试图使用++运算符增加一个变量,但我不断得到NaN结果,我不知道为什么.这是我的代码:

var wordCounts = { };
var x = 0
var compare = "groove is in the heart";
        var words = compare.split(/\b/);
        for(var i = 1; i < words.length; i++){
            if(words[i].length > 2){
                wordCounts["_" + words[i]]++;
            }
        }


alert(wordCounts.toSource());
Run Code Online (Sandbox Code Playgroud)

lau*_*ent 10

wordCounts["_" + words[i]]最初的值是undefined这样的,当你使用它时,它会给你NaN.只需将您的代码更改为:

if (wordCounts["_" + words[i]]) {
    wordCounts["_" + words[i]]++;
} else {
    wordCounts["_" + words[i]] = 1;
}
Run Code Online (Sandbox Code Playgroud)

  • 是的,有很多方法可以写它.将键""_"+ words [i]`放入变量中对于可读性和小优化也是一个好主意. (2认同)