我是编程新手,目前正在CodeAcademy上学习 javascript 。下面的代码来自教程,程序将搜索字符串以查找名称。程序将遍历数组,将每个字母与你名字的第一个字母进行比较,如果它看到那个字母:它将把那个字母和它后面的所有字母推到一个数组中,当它推入的字母数量时停止等于你名字中的字母数。
我不明白的是这条线:for (var j = i; j < (myName.length + i); j++)
为什么j <(myName.length + i)
而不是j<(myName.length)
?如果“Eric”的字母“E”是字符串中的第 25 个字符,那么j<(myName.length + i) = j<("4" + "25")
这不是错误的,因为正确的代码应该是j<("4")
4 是名称 Eric 的长度。
我试过运行代码,j<(myName.length)
但它无法工作,我似乎无法理解为什么。
text = "Blah blah blah blah blah blah Eric \
blah blah blah Eric blah blah Eric blah blah \
blah blah blah blah blah Eric";
var myName = "Eric";
var hits = [];
// Look for "E" in the text
for(var i = 0; i < text.length; i++) {
if (text[i] == "E") {
// If we find it, add characters up to the length of my name to the array
for(var j = i; j < (myName.length + i); j++) {
hits.push(text[j]);
}
}
}
if (hits.length === 0) {
console.log("Your name wasn't found!");
} else {
console.log(hits);
}