如何修复无法读取未定义的属性'Latitude'



我的代码不起作用。我需要将数组的值与输入的值进行比较,并返回纬度和经度值,以便在地图上绘制此点,但只得到错误Cannot read property latitude of undefined。

var auto1 = [{"Latitude": 42.389, "Longitude": -8.567, title: "test"}];
var digit = document.getElementById('searchmap');
var ret = digit.value;
function search(namek, myarray){
for(var i=0; i<myarray.length; i++){
if(myarray[i].title === namek){
return myarray[i];
} else{ return false;
}
}
}
var obj = search(ret,auto1);
function showauto(){
var retu = new google.maps.LatLng(obj.Latitude,obj.Longitude);
map.setCenter(retu);
}

我想要地图。setCenter(retu(工作。感谢

search函数有一个条件返回值。因此,在数组参数中没有任何项与条件匹配的情况下,它将返回undefined。在尝试引用函数返回值的属性之前,需要处理这种情况。

编辑:我很犹豫是否提供一个工作示例,因为我不知道你的规范是什么,但这里有一个可以工作:

function showauto() {
const obj = search(ret, auto1)
if (obj) {
var retu = new google.maps.LatLng(obj.Latitude,obj.Longitude)
map.setCenter(retu)
}
}

search返回错误值的情况下,showauto函数将不会尝试运行映射逻辑。

试试这样的东西:

function search(name, myarray) {
const foundItem = myarray.find(element => {
return element.title === name
})
return foundItem
}

我也不太确定你在做什么,但也许你在ret变量中有错误

var ret = digit.value

您没有为第行的函数搜索提供正确的值:var obj = search(ret,auto1),所以您的搜索函数找不到任何内容,并且不返回任何值,并且obj变成undefined,并且您无法访问undefined的属性,因为没有。

相关内容

  • 没有找到相关文章

最新更新