使用for循环查找字符串中的特定字符

时间:2015-02-23 12:43:54

标签: javascript

我正在尝试bean counting example in the functions chapter of the book Eloquent Javascript。我的功能是返回一个空白。

没有给我完整的答案(我正在通过这个例子来学习),有人可以告诉我为什么我的代码不打印任何文字吗?“

var string = "donkey puke on me boot thar be thar be!";

for (var i = 0; i <= string.length; i++);

function getB(){
  if (string.charAt(i) == "b")
    return i;
  else return "";
}

console.log(getB());

6 个答案:

答案 0 :(得分:2)

您尝试实施此功能时出现了问题。 首先,我认为如果你有一个函数接受stringchar作为参数,以便随时调用它,那就更好了。

调用示例:

getChar('this is my custom string', 'c')  -> it should search character `c` in `this is my custom string`

getChar('this is another custom string', 'b')  -> it should search character `b` in `this is another custom string`

实施示例:

var getChar = function(string, char){
  for(var i=0;i<string.length;i++)
  {
    if(string.charAt(i)==char) console.log(i);
  }
}

现在,尝试使其不区分大小写,而不是console.log输出尝试返回带有字符位置的排序数组

答案 1 :(得分:1)

使用此,

var string = "donkey puke on me boot thar be thar be!";

for (var i = 0; i <= string.length; i++) {
  if (string.charAt(i) == "b") {
    console.log(i);
  }
}

答案 2 :(得分:1)

另一个例子:收集所有b个职位:

var string = "donkey puke on me boot thar be thar be!";

function getB(string){
    var placesOfB = [];
    for (var i = 0; i < string.length; i++) {
        if (string.charAt(i) == "b") {
            placesOfB.push(i);
        }
    }
    return placesOfB;
}

console.log(getB(string));

答案 3 :(得分:1)

如果你想要打印你的价值所在的每个位置,你可以编写类似这样的东西:

var string = "donkey puke on me boot thar be thar be!";

for (var i = 0; i <= string.length; i++)
{
   getChar(i, "b");
}

function getChar(i, input)
{
    if (string.charAt(i) == input)
        console.log(i);
}

答案 4 :(得分:0)

提示:您的for没有身体(将;放在它之后只是循环而没有做任何事情)...... 在for内定义一个函数是没有意义的。

答案 5 :(得分:0)

如果没有给你完整的答案,我会给你指点: 1.你的for循环不完整 - 它没有做任何事情。 2.你的getB()函数需要接受字符串参数才能对它执行某些操作。 3. if..else语句没有开括号和右括号{}