カスタム オブジェクトは、for...of
ループを使用して反復できません。さらに、map()
や forEach()
などの反復子メソッドは使用できません。これを行うと、すべてのインスタンスで TypeError
が返されます。
代わりに、 for...in
を使用してオブジェクトを反復処理します。このメソッドは、オブジェクトの列挙可能なすべての非シンボリック プロパティを反復処理します。
次の例では、これを使用して obj
の 3 つのプロパティすべてを反復し、プロパティごとに、プロパティ名 (つまり、そのキー) とそのプロパティで構成される属性を記録します。対応する値の文字列。
オブジェクトのプロパティの反復ごとに異なるプロパティ名 (キーとも呼ばれる) を保持する変数 prop
を使用してループを初期化します。ブロック内で指定されたコードは、反復ごとに実行されます。
これを示す小さなデモを次に示します (出力を確認するには、結果 をクリックします):
ループ内では、反復ごとに、オブジェクトのプロパティ名と値の 1 つをコンソールに記録します。
オブジェクトのプロパティを反復処理するもう 1 つの方法は、オブジェクトを Object.entries()
に渡し、そのメソッドを呼び出すことです。これにより、多次元配列 (配列の配列) 内のこのオブジェクトの列挙可能なすべてのプロパティが返されます:
その後、配列反復子メソッドのいずれかを使用してループできます。
リーリーfor...of
ループを使用することもできます:
ここにいくつかのデモがあります:
ここでは、各反復でキーと値の配列を取得するため、それぞれ entry[0]
と entry[1]
を使用してそれらにアクセスします。キーと値ではなくキーのみが必要な場合は、Object.entries()
の代わりに Object.keys()
を使用します。
for...of
基本的に同じ:
以上がJavaScript を使用してオブジェクト キーを反復処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。