愚かな質問かもしれないが、それは私を混乱させた。文字を押す配列
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の部分は、テキスト文字列から「A」であるがmyName文字列の最初の文字のための最初のループの検索です。それが見つかると(この例では、0から始まる)8回目の繰り返しでそれを見つけることになります.J = Iという別のループに入り、jは8の値を取得しています.j 8文字は文字列の長さ+ 8(i)の長さと等しくないので、myName + iの長さに達するまでテキスト[8]から文字をプッシュし始めます。ヒット[0]から始まりますが、 'A'がもう一度見つかると、次の 'A'文字にヒットするとヒット配列を上書きしません。
'.push() '関数は常に、標的配列の末尾に追加します。 'hits'配列は空になるので、プッシュされた最初の文字が最初のエントリになります。その後、 '.push()'は常に最後に追加されます。 – Pointy
明確ではありません!正確にあなたが探しているもの。 –
'i'の代わりに最後のループ' k'を作ります – zer00ne