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

Javascript 在字符串中查找单词的循环,javascript,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”循环,它将识别我的名字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]);
        }
    }
}
/*jshint multistr:true*/
var text=(“Andrew真是太棒了,Andrew应该在这个项目上工作,但老实说,Andrew没有什么事可做。”);
var myName=(“安德鲁”);
var命中率=[];
对于(变量i=0;i

另外,第二个循环应该在到达myName结尾时停止。

您在for循环语法中拼写错误了
myName
,而是键入了
nyName
,因此,脚本很可能会在到达该行时立即消失。

for循环中要引用
myName
的输入错误似乎是一个大问题:

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

您使用的是JSHINT,所以只要阅读错误消息,它就会准确地告诉您出了什么问题

错误:

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

    未定义“nyName”

  • 第3行:
    var myName=(“安德鲁”);

    “myName”已定义,但从未使用过

如果您不注意它告诉您的内容,那么JSHINT就没有多大用处


此外,您的内部循环看起来很奇怪

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

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

拼写错误的
myName
不是唯一失败的部分。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]);
        }
    }
}
for(变量i=0;i
我想你的意思是(I-j)i是正在检查的当前字符。如果找到
“A”
,它将使用
myName.length
的字符。概念验证