在Eloquent JavaScript的这个任务中,你被要求编写两个函数.一个在字符串输入中计算""的数字.下一个功能必须输入两个输入; 一个要搜索的字符串和一个标识要搜索的目标字符的字符串.
我两个都有错误.在第一个函数中,我count总是返回为1.在第二个,它只是返回undefined.
有人能帮助我找到我的错误吗?
function countBs(str) {
var count = 0;
for (var i = 0; i < str.length; i++) {
if (str.charAt(i) === "B") {
count++;
}
return (count);
}
}
console.log(countBs("BBBBBBBBC"));
function countChar(str, char) {
var count = 0;
for (var i = 0; i < str.length; i++) {
if (str.charAt(i) === "char") {
count++;
return (count);
}
}
}
console.log(countChar("kakkerlak", "k"));
Run Code Online (Sandbox Code Playgroud)
问题是你在for循环中返回计数,所以它在搜索第一个字符后返回.在第二个函数中,您还使用字符串"char"而不是变量char进行比较.
如果你想按自己的方式去做,这里是正确的代码:
function countBs(str) {
var count = 0;
for (var i = 0; i < str.length; i++) {
if (str.charAt(i) === "B") {
count++;
}
}
return (count); // return outside of for loop
}
console.log(countBs("BBBBBBBBC"));
function countChar(str, char) {
var count = 0;
for (var i = 0; i < str.length; i++) {
if (str.charAt(i) === char) { // use the variable char instead of the string "char"
count++;
}
}
return (count); // return outside of the for loop
}
console.log(countChar("kakkerlak", "k"));Run Code Online (Sandbox Code Playgroud)
这是另一种做你想做的事情.(使用正则表达式)
function countBs(str) {
var length1 = str.length;
var length2 = str.replace(/B/g,"").length;
return length1 - length2;
}
console.log(countBs("BBBBBBBBC"));
function countChar(str, char) {
var length1 = str.length;
var regexp = new RegExp(char, "g");
var length2 = str.replace(regexp,"").length;
return length1 - length2;
}
console.log(countChar("kakkerlak", "k"));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2558 次 |
| 最近记录: |