2016-10-13 13 views
0

を返します。代わりに、これらの2つのプロパティを取得する私は、他のプロパティを持つ非常に大きなリストを取得し、もののは、オブジェクトのプロパティを反復することは、私はこのようになりますJSONを持っているすべてのオブジェクトのプロパティ

for(var key in metrics) { 
     if (metrics.hasOwnProperty(key)) { 
      console.log(key + " -> " + metrics[key]); 
     } 
    } 

var metrics = report.specifications[0] 

私はこのように、これら二つの性質を反復処理しようとしている:私は、オブジェクトが、このようにすることをアクセスオブジェクトの

私が取得無制限のリストの最初の行は次のとおりです。

__parentArray -> { metrics: { 'ga:pageviews': true, bounceRate: false } } 

は、これは私の問題に関係していますか?

reportId: String, 
specifications : [{ 
    metrics: { 
     'ga:pageviews': Boolean, 
     bounceRate: Boolean 
    }, 
    dimensions: { 

    } 
} 
] 
} 

任意のアイデア:

全体JSONスキーマは次のようになりますか?ここtoObject()メソッドを追加することで解決

+0

http://stackoverflow.com/questions/1098040/checking-if-a-key-exists-in-a-javascript-object –

+0

ないアイデア。そのコードは、 'metrics'オブジェクトを想定していると仮定して、2つのプロパティを反復するだけです。何が間違っているかを知るための十分な情報がありません。 –

+0

奇妙なことに、代わりに無制限のリストが得られる – Manos

答えて

0

var metrics = report.specifications[0].metrics.toObject(); 
0

最良の方法は、Object.keysを使用しているJavaScriptでプロパティを反復処理します。この処理とforループを使用することの違いは、Object.keysがプロトタイプチェーンのプロパティを無視することにあります。これはおそらく取得している可能性があります。

Object.keys(metrics).forEach(function (key) { 
    console.log(key + " -> " + metrics[key]); 
}); 
+0

前に間違った答え - 私を赦してください。それは怠惰なコピー貼り付けの試みでした。しかし、forループとObject.keysの違いについて知っておくと便利です。 –

関連する問題