私は今、机の上に頭を叩いています。 私は単純に理解できませんなぜconsole.log()
を使用したときに私のオブジェクトがはっきりとわかるときにJSONオブジェクトを反復できません。オブジェクトを反復すると、不思議に不確定なプロパティが取得されます
これは私の現在のループです:
for (var i = 0; i < list.length; i++) {
for (var y = 0; y < list[i].information.locations.length; y++) {
if (list[i].information.locations[y].city !== '') {
newArr.push({
"city": list[i].information.locations[y].city,
"country": list[i].information.locations[y].country
});
}
}
}
私に次のエラーを与える:TypeError: Cannot read property 'locations' of undefined
しかし、あなたは私の端末のスクリーンショットから見ることができるように、私ははっきりと情報オブジェクトとの位置配列を持っています内にオブジェクトがあります。
私がしようとした場合:console.log(list[i].information);
私だけundefined
結果を取得する最初のfor
ループ内。
主な問題は、リスト[i]。情報が未定義であるかのようです。しかし、私はそれが定義されていると思うので、私は私がオブジェクトを使って私のアレイ全体の大きなconsole.logを行うことができます。
これはなぜ起こっているのですか? Tyvm。私の理解で
'console.log(list [i])'の出力は何ですか? – gurvinder372
JSONをJSON.parse()を使ってオブジェクトに変換しましたか? – erdysson
あなたが投稿したコードに問題がないようです。たぶんタイミングの問題?私はあなたが配列をループするとき、オブジェクトはそこにはないが、ある時間後(たぶん、ajax呼び出しが完了した後)にオブジェクトがあることを意味する... – fradal83