我必须计算一封信被按下的次数。我编写了程序(我只使用JS),其中大部分都是,但我似乎遇到了问题。
如果键盘的输入是“w s s d”,则表示“一次按下字母w”和“按下字母2次”。字母D根本不显示。而且,说实话,我看不出可能是什么问题。
for(index = 0; index< inputList.length; index++) {
if(str != null && patt.test(str) && inputList[index].trim().length > 0) {
var match1 = str.match(new RegExp(inputList[index], "g"));
if(match1 != null){
output.innerHTML = output.innerHTML + ('<span>Letter ' + inputList[index] + " was pressed " + match1.length + " times</span><br/>");
str = str.replace(new RegExp(inputList[index], "g"), '');
}
}
}
这是小提琴:code
答案 0 :(得分:1)
打印次数后,请输入:
index = index + match1.length - 1;
这是因为即使多次按键,您总是将index
增加1,这意味着当您拥有w s s d
时,您正在循环索引0 1 2
而不是{ {1}}(跳过2,因为0 1 3
出现两次)。
答案 1 :(得分:1)