我看过其他主题。我是一个长期的潜伏者,这是我第一次发帖(我想)或者已经有一段时间了。无论如何,我知道问题是什么,我认为,基于其他响应,似乎我的变量没有被初始化。但我不认为这是我的问题。
我正在尝试创建一个“猜词”游戏,类似于没有棒图的刽子手。我正在创建一个函数,可以看到字母中的字母数量。我不确定我做得对。请查看我的代码并告诉我我做错了什么......?
谢谢!
function timesInWord(word, letter) {
var re = new RegExp(letter,"gi");
var isMatch = word.match(re).length;
if (isMatch != null && isMatch > 0) {
return isMatch;
} else {
return "No Match, Try again!";
}
}
console.log(timesInWord("Mississippi","r"));
答案 0 :(得分:2)
word.match(re)
将返回null
。这就是问题的原因。如果要在获取数组长度之前检查是否存在匹配项,请检查它是否不是null
。
答案 1 :(得分:1)
如果找不到匹配项,则word.match(re)
会返回null
。尝试在length
上致电null
会导致错误。
您不需要使用length
属性。在您的情况下,只有null
检查就足够了。请尝试以下方法:
function timesInWord(word, letter) {
var re = new RegExp(letter,"gi");
var isMatch = word.match(re);
if (isMatch != null) {
return isMatch.length;
} else {
return "No Match, Try again!";
}
}
console.log(timesInWord("Mississippi","p"));