我试图将一个字符串中的每个字母作为键返回一个对象,每个键的值是该字母出现的次数。
if语句似乎没有执行,我认为这是一个not运算符的问题,因为如果我删除它并将该字母放在对象中以便它评估为真。
function multipleLetterCount(str){
var countObj = {};
for(var i = 0; i < str.length; i++){
//Why won't this if statement run???
if(!str[i] in countObj){
countObj[str[i]] = 1;
} else {
countObj[str[i]]++;
}
}
return countObj;
}
multipleLetterCount("aaa")
返回{a:NaN}
答案 0 :(得分:4)
您需要使用否定运算符(!
)
if(!(str[i] in countObj))
甚至更好,改变你的状况:
if (str[i] in countObj) {
countObj[str[i]]++;
} else {
countObj[str[i]] = 1;
}