Javascript Ajax调用,生成数组对象
我想用ajax调用检索的数据创建一个对象。 问题是,每次ajax调用我都会调用我的函数,它会生成一个包含1个条目的数组*我的10个文件,但是我想要一个包含10个条目的数组Javascript Ajax调用,生成数组对象,javascript,jquery,ajax,maps,Javascript,Jquery,Ajax,Maps,我想用ajax调用检索的数据创建一个对象。 问题是,每次ajax调用我都会调用我的函数,它会生成一个包含1个条目的数组*我的10个文件,但是我想要一个包含10个条目的数组 function mapXML(data) { for (let i = 0; i < data.length; i++) { let maps = 'maps/' + data[i]; $.ajax({ url: maps, type: "GET", dataty
function mapXML(data) {
for (let i = 0; i < data.length; i++) {
let maps = 'maps/' + data[i];
$.ajax({
url: maps,
type: "GET",
datatype: "xml",
success: function(xml) {
traitementCarte(xml)
}
});
}
}
function traitementCarte(xml) {
console.log(xml)
let lat = [],
lng = [],
test = [];
var lastElementLat,
lastElementLng;
$(xml).find('trkpt').each(function(i, el) {
lat[i] = parseFloat($(this).attr('lat'));
lng[i] = parseFloat($(this).attr('lon'))
});
lastElementLat = lat[lat.length - 1];
lastElementLng = lng[lng.length - 1];
let locations = {
lat: lastElementLat,
lon: lastElementLng
};
test.push(locations);
console.log(test)
}
函数映射XML(数据){
for(设i=0;i
我的问题没有解决办法。
谢谢您需要在
traitementCarte()
函数之外声明数组变量,否则每次调用时都会创建一个新数组
var test = [];
function traitementCarte(xml) {
console.log(xml)
let lat = [],
lng = [];
var lastElementLat,
lastElementLng;
$(xml).find('trkpt').each(function(i, el) {
lat[i] = parseFloat($(this).attr('lat'));
lng[i] = parseFloat($(this).attr('lon'))
});
lastElementLat = lat[lat.length - 1];
lastElementLng = lng[lng.length - 1];
let locations = {
lat: lastElementLat,
lon: lastElementLng
};
test.push(locations);
console.log(test)
}
您能提供一个从ajax调用返回的xml数据的示例吗?还有其他调用ajax函数的代码,等等。这么简单的修复,希望我能给它两次投票!天哪,我没试过。。。初学者的错误。。非常感谢你