在字符串中查找单词的循环

时间:2013-04-24 18:34:23

标签: javascript

所以,我正在开发一个'for'循环来识别我的名字,Andrew,然后将它推入一个数组中,但它有问题

/*jshint multistr:true */

var text = ("Andrew is really awesome and Andrew should be working on the project, but there is honestly nothing for Andrew to do.");
var myName = ("Andrew");
var hits = [];
for (var i = 0; i < text.length; i ++) {
    if (text[i] === "A") {
        for (var j = i; i + nyName.length; i ++) {
            hits.push(text[j]);
        }
    }
}

此外,第二个循环应该在到达myName的末尾时停止。

4 个答案:

答案 0 :(得分:1)

您正在使用JSHINT,所以只需阅读错误消息,它就会告诉您究竟出了什么问题。

  

<强>错误:

     
      
  • 第7行:for (var j = i; i + nyName.length; i ++) {

         

    'nyName'未定义。

  •   
  • 第3行:var myName = ("Andrew");

         

    'myName'已定义但从未使用过。

  •   

如果你不注意它告诉你的东西,JSHINT并不是很好。


此外,你的内循环看起来很奇怪。

for (var j = i; i + nyName.length; i ++) {

似乎它会导致无限循环。您可能希望j具有不同的条件。

答案 1 :(得分:0)

您在for循环语法中拼错了myName并输入了nyName,因此脚本很可能会在它到达该行时立即死亡。

答案 2 :(得分:0)

for循环中想要引用myName的拼写错误似乎是个大问题:

for (var j = i; i + nyName.length; i ++)
                    ^

答案 3 :(得分:0)

拼写错误的myName不是唯一失败的部分。 for for循环永远不会结束循环,因为i + myName.length将始终评估为true。您还需要增加j的值,否则它将始终获得索引i处的字符。

这是纠正后的循环。

for (var i = 0; i < text.length; i ++) {
    if (text[i] === "A") {
        for (var j = 0; j < myName.length; i++, j++) {
            hits.push(text[i]);
        }
    }
}