Ajax 循环处理JSON数据并将对象组合到单个数组中
我从API获取JSON数据,需要在数据中循环以获取纬度和经度坐标。然后通过将这些坐标存储在数组中,将它们传递到地图中 这是我到目前为止所拥有的Ajax 循环处理JSON数据并将对象组合到单个数组中,ajax,json,loops,Ajax,Json,Loops,我从API获取JSON数据,需要在数据中循环以获取纬度和经度坐标。然后通过将这些坐标存储在数组中,将它们传递到地图中 这是我到目前为止所拥有的 $.ajax({ url: 'APIUrl', dataType:'json', success:function(locations) { console.log(locations); for (var i = 0; i < locations.results.length; i++) {
$.ajax({
url: 'APIUrl',
dataType:'json',
success:function(locations) {
console.log(locations);
for (var i = 0; i < locations.results.length; i++) {
var latitude = locations.results[i].geocode.lat;
var longitude = locations.results[i].geocode.long;
var name = locations.results[i].name;
var coordinates = [{name: name, latitude: latitude, longitude: longitude, radius: 2}];
bombMap.bubbles(coordinates, {
popupTemplate: function (geo, data) {
return ['<div class="hoverinfo">' + data.name, '</div>'].join('');
}
});
};
},
});
需要将名称和地理编码数据存储到一个变量中,如下所示
var = [{
name:
latitude:
longitude: },{
name:
latitude:
longitude: }
];
要获得一个大阵列,请执行以下操作:
concatenatedCoordinates = coordinates.reduce(function(a, b){return a.concat(b);});
我希望我理解你的问题是正确的。我明白了这一点,但迟迟没有注意到这一点是愚蠢的
$.ajax({
url: 'APIUrl',
dataType:'json',
success:function(locations) {
var locals = [];
for (var i = 0; i < locations.results.length; i++) {
var latitude = locations.results[i].geocode.lat;
var longitude = locations.results[i].geocode.long;
var name = locations.results[i].name;
var coordinates = {name: name, latitude: latitude, longitude: longitude, radius: 2};
locals.push(coordinates);
};
bombMap.bubbles(locals, {
popupTemplate: function (geo, data) {
return ['<div class="hoverinfo">' + data.name, '</div>'].join('');
}
});
},
});
$.ajax({
url:'APIUrl',
数据类型:'json',
成功:功能(位置){
var局部变量=[];
对于(变量i=0;i
需要在for循环外声明一个空数组,然后使用。按以用坐标填充它。早该发现的您能提供一个您正在查找的结果数据的示例吗?谢谢,但这会给出与我从坐标变量中删除[]相同的输出。它不会将对象合并到一个数组中
$.ajax({
url: 'APIUrl',
dataType:'json',
success:function(locations) {
var locals = [];
for (var i = 0; i < locations.results.length; i++) {
var latitude = locations.results[i].geocode.lat;
var longitude = locations.results[i].geocode.long;
var name = locations.results[i].name;
var coordinates = {name: name, latitude: latitude, longitude: longitude, radius: 2};
locals.push(coordinates);
};
bombMap.bubbles(locals, {
popupTemplate: function (geo, data) {
return ['<div class="hoverinfo">' + data.name, '</div>'].join('');
}
});
},
});