我无法使用.push()
将任何元素推送到数组中。这里的代码是我的尝试:
text = "fihdfhdkfhkdsfkjd";
var myName = "Anthony Pham";
var hits = [];
for(var i = 0; i < text.length; i+++) {
if (text[i] === myName[i]) {
for(var j = i; j <= (myName.length + i); j++) {
hits.push(text[j]);
}
}
}
我正在使用CodeAcedmy并向我发出一个错误,即我的第二个for
循环无法将任何值推送到hits
。我尝试在myName[j]
中切换text[j]
和hits.push()
,但仍无法使程序正常运行。我的第二个for
循环出了什么问题?
答案 0 :(得分:2)
试试这个..
for(var i = 0; i < text.length; i++) {
if (text[i] === myName[i]) {
for(var j = i; j <= (myName.length + i); j++) {
hits.push(text[j]);
}
}
}
答案 1 :(得分:1)
除了i+++
中的额外+,你有一个逻辑问题。 text[i] === myName[i]
唯一的时间是i
等于9(Pham中的h)。然后你有这个循环:
for (var j = i; j <= (myName.length + i); j++) {
// j = i = 9
// j <= 12 + 9 = 21
hits.push(text[j]);
// hits = [h, a, m, undefined, undefined, undefined, ... , undefined ]
}
答案 2 :(得分:0)
使用charAt(),而不是数组括号。
此外,您永远不会检查myName上的界限,并且正在读取它引用的两个地方的结尾。