gpt4 book ai didi

javascript - 为 Eloquent JavaScript 任务编写 "Bean Counter"

转载 作者:行者123 更新时间:2023-11-30 07:08:19 25 4
gpt4 key购买 nike

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"));

最佳答案

问题是您在 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"));

这是另一种方法来做你想做的事。 (使用 regular expressions )

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"));

关于javascript - 为 Eloquent JavaScript 任务编写 "Bean Counter",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30240528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com