【发布时间】:2013-09-02 00:43:05
【问题描述】:
我制作了一个函数,可以使用 Google API 从 Google 地图输出数据。调用该函数以从一组位置输出。
问题是有时它不会输出最后一个 document.body.innerHTML 部分,该部分会输出该地点的 URL。如果我删除输出该地点的评论方面的 for 循环,则始终显示 URL。
function printme(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
document.body.innerHTML += ('<br />'+ place.name + ' R: '+ place.rating);
for (var i = 0, reviews; reviews = place.reviews[i]; i++) {
for (var x = 0, aspectr; aspectr = reviews.aspects[x]; x++) {
document.body.innerHTML += ('<br />'+'Aspect: ' + aspectr.type + ' ' + aspectr.rating);
}
}
document.body.innerHTML += ('<br />'+ '<a href = '+place.url+'>'+place.url+'</a>'+'<br />');
}
else {
alert(status);
}
}
我不明白为什么会这样。
【问题讨论】:
-
啊,我想我找到了问题所在。可能是当 places.reviews 数组中没有任何内容时它会崩溃。如何制作 if 语句以仅在 places.reviews 中有内容时运行代码?
0){}> 不起作用。 -
啊,没关系,我想通了。我使用了以下内容,它很有魅力: if (typeof place.reviews !== 'undefined'){...rest of code...}
-
reviews = place.reviews[i]-reviews是用于此变量的错误名称。您应该将此变量称为review,而不是reviews,因为它是单个评论:review = place.reviews[i] -
您也会发现learn how to use the JavaScript debugger 非常有帮助。它将帮助您查明此类问题、尝试不同的表达式、查看变量等。
标签: javascript