如何使用Javascript从嵌套的多维数组中获取值
我用带有信息窗口的谷歌地图创建了一张地图。 我想动态打印信息窗口的内容。 因此,我创建了一个值数组作为嵌套数组,但无法获取此嵌套/多维数组中的值。 因此,我的目标是在片段的内容中运行第一、第二、第三、第四、第五部分如何使用Javascript从嵌套的多维数组中获取值,javascript,google-maps-api-3,google-maps-markers,Javascript,Google Maps Api 3,Google Maps Markers,我用带有信息窗口的谷歌地图创建了一张地图。 我想动态打印信息窗口的内容。 因此,我创建了一个值数组作为嵌套数组,但无法获取此嵌套/多维数组中的值。 因此,我的目标是在片段的内容中运行第一、第二、第三、第四、第五部分 $(document).ready(function () { var map; var elevator; var myOptions = { zoom:
$(document).ready(function () {
var map;
var elevator;
var myOptions = {
zoom: 1,
center: new google.maps.LatLng(0, 0),
mapTypeId: 'roadmap'
};
map = new google.maps.Map($('#map_canvas')[0], myOptions);
let addresses = [
['Norway','first'],
['Africa','second'],
['Asia','thrid'],
['North America','fourth'],
['South America','fifth']
];
for (var x = 0; x < addresses.length; x++) {
//usleep(1000000);
$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+addresses[x][0]+'&sensor=false', null, function (data) {
var p = data.results[0].geometry.location
var latlng = new google.maps.LatLng(p.lat, p.lng);
new google.maps.Marker({
position: latlng,
map: map,
title: addresses[x][0]
});
var infowindow = new google.maps.InfoWindow({
content: 'addresses'
});
var marker = new google.maps.Marker({
position: latlng,
map: map
});
google.maps.event.addListener(marker, 'click', function() {
alert("Marker clicked");
infowindow.open(map,marker);
});
});
}
});
它给了我
Uncaught TypeError: Cannot read property '1' of undefined
这是我的小提琴
请试试这个
addresses.forEach(address => console.log(address[1]))
或者更详细的版本:
addresses[0][1]
addresses[1][1]
addresses[2][1]
addresses[3][1]
addresses[4][1]
我正在尝试使用content:addresses[x][1]使其成为动态的,但它给了我未捕获的TypeError:cannotread属性“1”的未定义errorYes,因为您在第23行中执行了异步请求,并且for循环在请求完成之前完成。您应该将第21行中的
var
更改为let
,如果您想更深入地了解闭包,请检查以下内容:
addresses[0][1]
addresses[1][1]
addresses[2][1]
addresses[3][1]
addresses[4][1]