我试图从回调数组中获取纬度和经度。数组有时内部有一个对象,有时还有两个对象。
Object {place = {...},reference = {...}}或[Object {place = {...},reference = {...}},Object {place = {... },reference = {...}}]
Placemaker.getPlaces(text,function(o){
console.log(o);
if (typeof o.match!=='undefined' || o.length==1){
latitude=o.match.place.centroid.latitude, longitude=o.match.place.centroid.longitude;
console.log(latitude,longitude);}
/*else if(o=='null'){
latitude='', longitude='';
}*/
else if (typeof o.match[0]!=='undefined' || o.match.length==2){
latitude=o.match[0].place.centroid.latitude, longitude=o.match[0].place.centroid.longitude;
console.log(latitude,longitude);
}
基本上我可以从具有一个对象的数组中获取纬度和经度,而不是从内部有两组对象时得到。这是我得到的错误
TypeError: o.match is undefined
[Break On This Error]
else if (typeof o.match[0]!=='undefined' || o.match.length==2){
谢谢大家的帮助!
答案 0 :(得分:0)
我认为你在截图中显示的是这个javascript数据结构:
var match = [
{
place: {
centroid: {latitude: xx, longitude: yy},
name: "London, England",
type: "Town",
woeld: "44418"
}
reference: {...}
},
{
place: {
centroid: {latitude: xx, longitude: yy},
name: "Germany",
type: "Country",
woeld: "23424829"
}
reference: {...}
}
];
您可以访问数组中每个元素的纬度和经度,如下所示:
for (var i = 0; i < match.length; i++) {
var centroid = match[i].place.centroid;
// latitude is centroid.latitude
// longitude is centroid.longitude
}