JavaScript多维数组不能作为数组访问,只能作为字符串访问
JavaScript multidimensional array cannot access as array, only as string
我试图在谷歌地图上放置多个标记。我有JS构建一个数组,并将其传递给处理标记的Google函数。问题是,当我试图访问假定的数组时,我只得到第一个字符,就好像它是一个字符串。
$(document).ready(function () {
// initialize map to center on florida.
initializeGMap();
var locations = [];
@foreach (var item in Model)
{
<text>
locations.push(@Html.Raw(Json.Encode("'" + item.Name + "'," + item.Location.Latitude + "," + item.Location.Longitude + "")));
</text>
}
addMarker(locations);
});
我已经尝试了包括JSON在内的几种(阅读:20+)变体。在发送前、发送后等进行字符串化。下面是传递给它的函数:
function addMarker(locations) {
var locations = JSON.stringify(locations);
alert(locations + ''n' + locations[0][0] + ''n' + locations[0][1]);
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
alert("done");
}
当它到达'locations[x][x]'行时,我所得到的都是'[',这是JSON字符串的第一个字符。它不是在数组中处理的。我错过了什么?
我通过:
$(document).ready(function () {
// initialize map to center on florida.
initializeGMap();
// serialize model locations
var locationsToPass = @Html.Raw(Json.Encode(Model.Select(x => new { x.Name, x.Location.Latitude, x.Location.Longitude })));
addMarker(locationsToPass);
});
,在接收函数中:
function addMarker(locations) {
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i].Latitude, locations[i].Longitude),
map: map
});
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(locations[i].Name);
infowindow.open(map, marker);
}
})(marker, i));
}
}
故障排除的关键是使用它来检测我是否传递了一个数组:
variable.constructor === Array
相关文章:
- 用javascript访问数组中的数组
- 如何访问数组中的数组元素(JavaScript)
- 如何在javascript中访问数组的值
- 如何在 AngularJS 中从 API 访问数组数据
- 哪一个在访问数组长度方面的性能更好
- 访问数组的特定元素
- symfony 2 trick访问数组javascript索引
- Knockout-访问数组的长度“;绑定到“;来自模板内部
- 访问数组中属性值的属性值
- JavaScript:访问数组值
- 为什么当我只是访问数组时,我在这里得到 NaN
- 如何在javascript中从JSON对象访问数组
- Javascript 为什么我不能使用这样的数组,以及如何使用计算出的数字访问数组
- 无法访问数组的所有值
- 如何按顺序循环访问数组,其中序列存储为另一个数组
- Javascript:是否有任何后门方法来访问数组的真正隐藏/私有长度属性
- 如何访问数组的 json 对象
- 循环访问数组项并检查属性值
- 如何使用 angularjs 从 json 数组访问数组
- 如何在 JSON 中的数组中访问数组的值