这可能是一个愚蠢的问题,但它让我困惑。推送字符的阵列
var text = "Hello Mr Andreas Andreas Kostakis o ala krem Andreas o pianistas o poutsopnikt\o skaraveos o Andreas";
var myName = "Andreas";
var hits = [];
for (var i = 0; i < text.length; i++){
if (myName[0] === text[i])
{
for (var j = i; j < (myName.length + i); j++){
hits.push(text[j]);
}
}
}
for (var i = 0; i < hits.length; i++)
{
document.write(hits[i]);
}
是IAM在此代码感到困惑的部分是,在第一循环的寻访MYNAME字符串的第一个字符是“A”从文本字符串。当它发现它时(在我们的例子中它会在第8次(从0开始)迭代中找到它),它进入另一个循环,我们说J = 1,所以j得到8的值,只要j这是8不等于名称字符串的长度+ 8(i)将开始从文本[8]推动字符直到它击中myName +我的长度。我的问题是在哪里命中[]阵列它会把字符?它会从命中[0]开始?当它再次找到'A'时,它会继续从那里继续吗?为什么在碰到下一个'A'字符时它不覆盖命中数组?
的'.push()'函数总是添加到目标阵列的端部。 'hits'数组开始为空,所以推送的第一个字符成为第一个条目。之后,'.push()'总是在最后添加。 – Pointy
不清楚!你究竟在寻找什么。 –
做最后一个循环'k'而不是'i' – zer00ne