![](/img/trans.png)
[英]FOR loop and string concatenating with JavaScript gives me an undefined value
[英]Calling javascript object value gives me 'undefined'
我正在使用Google Map应用程序,我希望从数据库中加载一些标记并将其显示在地图上。 因此,我创建了一个数组并定义了这样的对象。
function shop_data(name,latitude,longitude,type)
{
this.name=name;
this.latitude=latitude;
this.longitude=longitude;
this.type=type;
}
然后,我将从ajax请求中检索到的一些数据添加到“ shop_data”对象数组中。 该数组定义为“ all_shops”。
var i=0;
for(var o in data){
var name = data[o].name;
var type = data[o].type;
var lat = data[o].lat;
var lng = data[o].lng;
all_shops[i]=new shop_data(name,lat,lng,type);
i++
}
然后,当我调用“ all_shops [i] .name”时,它给了我自己的名字。 但是当我叫“ all_shops [i] .lat”或“ all_shops [i] .lng”时,它给了我“未定义”。 我也尝试解析经纬度。 此处lat,lng是MySQL数据库中的双变量。 我可以通过调用name,type,lat,lng从接收到的ajax数据中毫无问题地获取lat,lng值。 但是,当我将它们全部放入一个数组并从数组中调用它们时,事情就出错了。 任何帮助,将不胜感激。 谢谢。
从
this.latitude=latitude;
this.longitude=longitude;
至
this.lat=latitude;
this.lng=longitude;
您有一个简单的复制/粘贴错误。
你应该打电话给你的latitude
或longitude
从all_shops[i]
不lat
或lng
,你有你的shop_data
函数定义是这样
function shop_data(name,latitude,longitude,type)
{
this.name=name;
this.latitude=latitude;
this.longitude=longitude;
this.type=type;
}
或者如果要使用lat
或lng
则更改shop_data
函数定义,例如
function shop_data(name,latitude,longitude,type)
{
this.name=name;
this.lat=latitude;
this.lng=longitude;
this.type=type;
}
更改变量名称以使其匹配并进行一些清除可以得到:
function shop_data(name,latitude,longitude,type){
this.name=name;
this.lat=latitude;
this.lng=longitude;
this.type=type;
}
和:
var i=0;
for(var o in data){
var name = data[o].name;
var type = data[o].type;
var lat = data[o].lat;
var lng = data[o].lng;
all_shops[i]=new shop_data(name,lat,lng,type);
i++
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.