Javascript геокодирования API Карт Google V3, если существует значение json - PullRequest
0 голосов
/ 04 апреля 2011

Я немного новичок в 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()];    
}

но линия все еще работает, даже если там нет значения. Я должен делать это неправильно. Пожалуйста, помогите кому-нибудь.

Поскольку значение будет отличаться каждый раз, я просто хочу, чтобы строка работала, если есть ЛЮБОЕ значение.

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

[results[1].geometry.location.lat()] - сокращение для массива;оно никогда не будет нулевым.

Возьмите [].

По-настоящему безопасным способом проверки будет:

if (results[1] && results[1].geometry && results[1].geometry.location && results[1].geometry.location.lat) {
   ...
0 голосов
/ 04 апреля 2011

Если вы знаете, что геометрия существует, но вы не уверены, существует ли местоположение или нет, вы можете проверить против неопределенного.

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

Если вы не знаете, существует ли хотя бы геомерия, вам также необходимо проверить, не определено ли это.

...