這可能是一個愚蠢的問題,但它讓我困惑。推送字符的陣列
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