0

私は Javascript の初心者で、非常に単純な if ステートメントを作成しようとしています。

アドレスを Google ジオコーダーに送信し、json の結果を受け取ります。結果を解析して、html ドキュメントに出力しています。

コードがクラッシュしないように、実際に存在する値のみを出力したいと考えています。

今私は持っています:

document.getElementById('lat').innerHTML = [results[1].geometry.location.lat()];

それは機能しますが、「results[1].geometry.location.lat()」がjson結果に存在しない場合、その行を実行したくありません。

私が試してみました:

if ([results[1].geometry.location.lat()] != null) {
    document.getElementById('lat').innerHTML = [results[1].geometry.location.lat()];    
}

そこに値がなくても、行は実行されます。私はこれを間違ったことをしなければなりません。誰か助けてください。

値は毎回異なるため、値があれば行を実行したいだけです。

4

2 に答える 2

1

[results[1].geometry.location.lat()]配列の省略形です。null になることはありません。

を取り出します[]

本当に安全なテスト方法は次のとおりです。

if (results[1] && results[1].geometry && results[1].geometry.location && results[1].geometry.location.lat) {
   ...
于 2011-04-04T02:19:10.630 に答える
0

ジオメトリが存在することはわかっているが、場所が存在するかどうかわからない場合は、未定義をチェックできます。

if (results[0].geometry.location !== undefined) {
    var lat = results[0].geometry.location.lat();
}

ジオメトリさえ存在するかどうかわからない場合は、それが未定義かどうかも確認する必要があります。

于 2011-04-04T02:18:43.007 に答える