gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:18:10 24 4
gpt4 key购买 nike

我想用我通过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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com