所以,我正在开发一个'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的末尾时停止。
答案 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]);
}
}
}