只是练习一些for循环,我不确定它为什么没有输出:
['']
这是代码:
var text = "This is a long piece of Liam text with a bit of Liam text in the Liam";
var myName = "Liam";
var hits = [""]
for (var i=0; i >= text.length; i++)
{
if (myName[i] === "L")
{
for (var j=i; j < (myName.length + i); j++)
{
hits.push(i);
}
}
}
if (hits.length === 0)
{
console.log("Your name wasn't found!");
}
else
{
console.log(hits);
}
我认为我的推送功能实际上是不是正确地将字母推入数组?
答案 0 :(得分:4)
for (var i=0; i >= text.length; i++)
应该是
for (var i=0; i < text.length; i++)
答案 1 :(得分:3)
就像一个FYI,你可以这样做:
text.indexOf(myName) !== -1; // true if myName occurs in text
或者,如果你想变得非常聪明:
text.match(new RegExp("\b" + myName + "\b")); // \b = word boundary = amazing
// wont match "NotLiam", will match "Hi, I'm Liam."
答案 2 :(得分:1)
for(var i = 0; i&gt; = text.length; i ++)
实际上意味着变量i将从0开始,每次在执行代码块之前检查是否满足条件i&gt; = text.length,如果条件不成立,则代码块将不会执行。 i ++的最后一部分意味着在每次迭代后定义的代码块之后,运行此语句。
由于文本长度大于0,因此第一次检查i(等于0)大于或等于文本长度(即69)失败,并且永远不会调用push。
答案 3 :(得分:0)
for (var i=0; i >= text.length; i++)
{
if (myName[i] === "L")
{
for (var j=i; j < (myName.length + i); j++)
{
hits.push(i);
}
}
}
for循环错误
它应该是:
for (var i=0; i <= text.length; i++)
答案 4 :(得分:0)
for (var i=0; i <= text.length; i++)
{
if (text[i] === "L")
{
for (var j=i; j < (myName.length + i); j++)
{
hits.push(text[j]);
}
}
}
第二个嵌套for循环中的代码也是错误的 - 改为:
for (var j=i; j < (myName.length + i); j++)
{
hits.push(i);
}