オブジェクトを反復処理する古典的な方法は、for .. in
ループを使用することです。
for (prop in obj) {
val = obj[prop];
}
この手法の考えられる副作用の 1 つは、特定の順序でプロパティを反復処理することが保証されないことです。プロパティ名が事前にわかっている場合は、プロパティ名の配列を作成して反復できます。
for .. in
オブジェクトがネストされているため、完全に繰り返すには 2 つのループをネストする必要があります。
for (prop in obj) {
nested_obj = obj[prop];
for (nested_prop in nested_obj) {
nested_val = nested_obj[nested_prop];
}
}
すべてのプロパティ名の配列を取得するには、次のように配列を作成できます。
props = [];
for (prop in obj) {
props.push(prop);
nested_obj = obj[prop];
for (nested_prop in nested_obj) {
props.push(nested_prop);
nested_val = nested_obj[nested_prop];
}
}