无法将值推入列表

时间:2015-09-24 23:04:21

标签: javascript

我无法使用.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循环出了什么问题?

3 个答案:

答案 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上的界限,并且正在读取它引用的两个地方的结尾。