У меня есть эта функция. Ввод функции - это данные, полученные из json-файла. У меня есть карта с именем arrowMap, которая затем устанавливается на arrowsMap, которая, в свою очередь, устанавливается в arrowsDataMap. Проблема заключается в том, что данные перезаписываются в arrowsDataMap по старым ключам. Поэтому, когда я делаю это arrowsDataMap.get («0»). Get (0) .get (1)), я получаю данные, которые были в (arrowsDataMap.get («1»). Get (0) .get (1)) и те же данные в этом месте. Поэтому данные по существу перезаписываются. Любая помощь приветствуется.Javascript: неверные данные устанавливаются на карту
function animateLines(data) {
pointLength = data.points.length;
arrowLength = data.points["0"].point.length;
var viewEntryKey=0;
for (var viewEntryKey in data.points) {
for (var i = 0; i < data.points[viewEntryKey].point.length; i++) {
var arrowMap = new Map();
arrowMap.set(1,data.points[viewEntryKey].point[i].latLng);
arrowMap.set(2,data.points[viewEntryKey].point[i].size);
arrowMap.set(3,data.points[viewEntryKey].point[i].angle);
arrowsMap.set(i,arrowMap);
//alert(arrowsMap.get(0).get(1));
}
arrowsDataMap.set(viewEntryKey,arrowsMap);
}
json file:
{
"points": [
{
"point": [
{
"latLng": [-88.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "0.79"
},
{
"latLng": [-88.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "0.69"
}
,
{
"latLng": [-88.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "0.49"
}
,
{
"latLng": [-88.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "0.29"
}
,
{
"latLng": [-88.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "0.09"
}
,
{
"latLng": [-88.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "-0.09"
}
,
{
"latLng": [-88.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "-0.29"
}
,
{
"latLng": [-88.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "-0.49"
}
,
{
"latLng": [-88.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "-0.69"
}
]
},
{
"point": [
{
"latLng": [-89.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "0.79"
},
{
"latLng": [-89.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "0.69"
}
,
{
"latLng": [-89.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "0.49"
}
,
{
"latLng": [-89.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "0.29"
}
,
{
"latLng": [-89.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "0.09"
}
,
{
"latLng": [-89.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "-0.09"
}
,
{
"latLng": [-89.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "-0.29"
}
,
{
"latLng": [-89.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "-0.49"
}
,
{
"latLng": [-89.9999988477954, 29.999999681521295],
"size": "0.15",
"angle": "-0.69"
}
]
}
]
}
Где arrowsMap created? У меня такое чувство, что нужно воссоздавать для каждого члена 'data.points'. Итак, в первом цикле, перед запуском второго цикла, поместите 'var arrowsMap = new Map();' или что-то подобное. – forgivenson
Я создал его вне функции с помощью стрелокDataMap. Я попробовал решение, которое вы предложили, и это сработало! Большое вам спасибо @forgivenson – user3267015
Добро пожаловать! Я сказал это как ответ, чтобы вы могли отметить этот вопрос, как ответили. – forgivenson