我正在尝试使用OpenStreetMap API。在文档中,我们有一个对象示例:
var villes = {
"Dijon": { "lat": 47.3215806, "lon": 5.0414701 },
"Montbard": { "lat": 47.6241674, "lon": 4.3373194 }
};
现在,我想用一个动态对象替换此静态对象,该对象在循环中动态分配,并且每次迭代都通过Object.assign()添加到该对象中
结果,对象看起来格式正确,但是不起作用。我可以看到的唯一区别是在控制台中。它们之间有什么区别?我听不懂(第一个看起来是空的,但是值存储得很好。第二个正在工作,它是静态的)
编辑:在下面添加的代码
以下是构建动态对象的代码:
var mesvilles = {};
var ville_current = {};
for (let i=0; i < cities.length; i++){
$.getJSON('https://nominatim.openstreetmap.org/search.php?q='+cities[i]+'&country=France&format=json', function(data) {
ville_current = {[cities[i]]: {"lat": parseFloat(data[0].lat), "lon": parseFloat(data[0].lon)}};
mesvilles = Object.assign(mesvilles,ville_current);
});
}
console.log(mesvilles);
这是原始对象:
var villes = {
"Dijon": { "lat": 47.3215806, "lon": 5.0414701 },
"Montbard": { "lat": 47.6241674, "lon": 4.3373194 }
};
console.log(villes);