Javascript 无法将值推送到列表中

Javascript 无法将值推送到列表中,javascript,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++) {

我无法使用
.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]);
        }
    }
}
text=“fihdfhdkfhkdsfkjd”;
var myName=“Anthony Pham”;
var命中率=[];
对于(变量i=0;i
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]);
        }
    }
}
for(变量i=0;i

此外,您从不检查myName的边界,并且在引用的两个位置都读取到末尾。

除了
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 ]
}

for(var j=i;j使用
charAt()
是什么意思?从字符串中选择字符时,方括号表示法不是通用的标准。它不是text[i]==myName[i],而是text.charAt(i)==myName.charAt(i)