3

私はStoyanStefanovによるオブジェクト指向Javascriptを読んでいて、ある時点で彼は次のように書いています。

ループは、配列のfor-in要素(または後で説明するオブジェクト)を反復処理するために使用されます。これは使用のみです。forまたはを置き換える汎用の繰り返しメカニズムとしては使用できませんwhilefor-inを使用して配列の要素をループする例を見てみましょう。ただし、これは情報提供のみを目的for-inとしており、オブジェクトに最も適しているため、通常のforループを遅延に使用する必要があることに注意してください。

for配列の要素を反復処理するときは、過去に常にループを使用していました。通常、この目的で使用されるループでforはなくループを確認しましたが、「通常のループを配列に使用する必要がある」理由は何ですか。for-infor

4

3 に答える 3

3

for配列に通常のループを使用する理由は、反復をインデックス付きの値に制限するためです。

ループを使用するfor-inと、オブジェクトのすべてのプロパティが繰り返され(配列はオブジェクトです)、数値でインデックス付けされていない配列に任意のプロパティをアタッチすると、予期しない結果が生じる可能性があります。

于 2011-07-09T20:19:53.557 に答える
1

問題は、一部のライブラリ(プロトタイプが頭に浮かぶ)が配列型を拡張することです。そのため、for inループを使用するenumerableと、配列のすべての要素を含む、その配列のすべてのプロパティにヒットしますが、プロパティまたはメソッドにすべて追加されます。 。あなたがしたいことではありません。

ループは、配列のfor i in要素、つまり文字通りに定義するものに対してのみ繰り返され[1, 2, 3, 4]ます。

于 2011-07-09T20:18:48.720 に答える
0

配列内の要素の正確な数がわからない場合は、主にこれを使用します。一般に、配列が動的に、またはオンザフライで入力されている場合に、要素を反復処理するために使用されます。

于 2011-07-09T20:21:23.120 に答える