0
var names = ["Ringo", "John", "Paul", "George"];

for (var i = 0; i < names.length; i++) {
    alert("Say hello to " + names[i]);
}

上記のコードでは、最後のピース (names[i]) が配列のインデックスを変更して正しい名前を与えていると想定しています。これは本当ですか?正確には何が起こっているのですか?名前を変更するためにインデックスを変更しているのは何ですか? また、変数に「i」の代わりに「a」、「b」、さらには「counter」などの別のラベルを使用した場合、それは機能しますか?

4

2 に答える 2

4

最初の部分 var names = ["Ringo", "John", "Paul", "George"]; は配列定義です。4 つのアイテムを含む JavaScript 配列を読み込んでいます。配列内のインデックスは次のとおりです。

0 = "Ringo"
1 = "John"
2 = "Paul"
3 = "George"

これらの項目を JS で個別に参照するには、次のようにします。

var nameOne = names[0]; //nameOne = "Ringo"
var nameTwo = names[1]; //nameTwo = "John"

コード内のforループは、配列内の各項目をステップ実行します。var i = 0は、配列のインデックスとして使用する新しい変数を作成していることを示しています。これは、簡単にvar a, var b, . になる可能性がありvar indexOfTheArrayます。なんでもいい。

次の部分i < names.lengthは、条件を満たすforまでループを繰り返す条件です。この場合、「の値がi配列の長さ未満である限りループする」と表示されnamesます。array.length配列内の項目の総数を返します。したがってnames.length、4 に等しくなります。

最後の部分は特別な JS コマンドi++です。これは、「の値に 1 を加算する」という意味iです。

forループが閉じ括弧に到達するたびに、 がインクリメントさiれ、条件が評価されます。

ループ内では、i作業中の配列の現在のインデックスを表します。

names[i]ループ内で何度でも使用できfor、次に終了ブラケットに到達してループに戻るまで変化しません。その後i、インクリメントされ、配列に次の値が含まれます。

于 2012-07-17T03:27:06.340 に答える
2

iは完全に普通の変数です。ループ内のステートメント
のために増加します。i++

配列のインデックス付けは、その元が何であっても、任意の文字列または数値で実行できます。

于 2012-07-17T03:01:12.537 に答える