通过' Eloquent Javascript'我在理解如何在语言中正确使用if
for
语句时遇到了一些障碍。我应该编写一个函数来计算大写的所有实例' B'在给定的字符串中。我到目前为止编写的代码:
function countBs(s) {
var counter = 0;
for (i = 0; i < s.length; i++) {
if ('B' == s.charAt(i)) {}
counter += 1;
}
}
console.log(countBs("BBC"));
&#13;
预期输出:2
实际输出:undefined
我的循环是错误的,还是我的&#39; if&#39;?
答案 0 :(得分:3)
你有两个错误
counter
。return
声明。可以使用以下内容:
function countBs(s){
var counter = 0;
for(i = 0; i < s.length; i++){
if ('B' == s.charAt(i)) {
counter += 1; // this needs to be inside the if statement
}
}
return counter;
}
答案 1 :(得分:2)
您的函数没有return
声明。
答案 2 :(得分:1)
一些问题。
function countBs(s) {
var counter = 0;
for (i = 0; i < s.length; i++) {
if ('B' == s.charAt(i)) {
++counter;
}
}
return counter;
}
document.write(countBs("BBC"));
counter
if
语句已打开,然后立即关闭,如果该字符为B
counter
并修正了上述2个错误,该函数仍会在找到B
后退出。要解决此问题,请在return
结束后移动for
。如果您感兴趣,可以用这个单行解决同样的问题:
function countBs(s) {
return s.match(/B/g).length;
}
document.write(countBs("BBC"));
找到所有B
个字符(区分大小写),将它们放入数组中,然后返回该数组中的项目数。