Javascript Ajax调用,生成数组对象

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

我想用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",
      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函数的代码,等等。这么简单的修复,希望我能给它两次投票!天哪,我没试过。。。初学者的错误。。非常感谢你