0

我是 Javascript 的新手,我正在尝试创建一个非常简单的 if 语句。

我正在向谷歌地理编码器发送地址并接收 json 结果。我正在解析结果并打印到我的 html 文档中。

我现在只想尝试打印实际存在的值以防止我的代码崩溃。

现在我有:

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

它可以工作,但是如果 json 结果中不存在“results[1].geometry.location.lat()”,我不希望该行运行。

我试过了:

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()]是数组的简写;它永远不会为空。

取出[].

真正安全的测试方法是:

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 回答