看图吧
图片描述
值虽然是能够得到了,但是我刷新刷新刷新之后这两个值就会随机变换,根本不知道哪个是“重庆”的,哪个是“贵阳”的,各位老哥有什么办法吗?我按着网上的一些说法写了回调、Promise、闭包这些都没有用啊,有遇到过的吗?
贴一份源码:
<!DOCTYPE html>
<html lang="en">
<title>根据地址查询经纬度</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>
</head>
<body>
<div id="container"></div>
</body>
<script type="text/javascript">
var map = new BMap.Map("container");
var localSearch = new BMap.LocalSearch(map);
var address=['重庆','贵阳']
for(let i=0;i<address.length;i++){
fn(i,function (d){
console.log(d)
})
}
function fn(i,callback){
var keyword = address[i];
localSearch.setSearchCompleteCallback(
function (searchResult) {
var poi = searchResult.getPoi(0);
var result = poi.point.lng + "," + poi.point.lat;
callback(result)
}
);
localSearch.search(keyword);
}
</script>
</html>
你数组里面别就存俩名字了,你存一个对象{重庆:[]},{贵阳:[]},赋值的时候就找对应的赋值,那就不会错了啊