javascript - Ajax调用,创建数组对象

标签 javascript jquery ajax maps

我想用我通过ajax调用检索的数据创建一个对象。 问题是,我每次 ajax 调用都会调用我的函数,它会生成一个包含 1 个条目的数组 * 我的 10 个文件,但我想要 1 个包含 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)
}

Console.log(test)

我的问题没有解决方案。 谢谢

最佳答案

您需要在 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)
}

关于javascript - Ajax调用,创建数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44057577/

相关文章:

javascript - 使用回形针上传 jQuery 文件,上传前显示预览图像

jquery - jsTree默认箭头/三 Angular 形图标配置

javascript - 失败时的 Ajax 响应

javascript - Ajax 请求在 spring-mvc 项目中不起作用

javascript - 为什么我在使用 node-oracledb 时收到 "NJS-138: connections to this database server version are not supported by node-oracledb in Thin mode"错误

javascript - 为什么这个 jquery 选择器给我错误?未捕获的异常 : Syntax error, 无法识别的表达式: ''

c# - 在 javascript 中添加“确定”和“取消”按钮

javascript - 在后退按钮 IE11 上触发 document.ready

php - 加载动态 php 和 mysql 页面而不刷新 - AJAX

jquery - 将 ajax 响应显示到输入字段中