@Dark19

Есть ли возможность прокручивать элементы массива внутри свойств функции?

Добрый день. Есть возможность прокручивать элементы массива внутри свойств функции?
Например есть функция вывода точек на карту ymaps.route к ней в свойства передаются элементы из массива. Первая точка и последняя статические(их нужно вывести один раз при обходе каждого массива), а вот промежуточные точки type: 'viaPoint' нужно вывести все из массива. То есть результат должен получится такой: начальная точка el['pointCenter'][0] потом вывод всех точек из массива C->0 потом конечная точка el['pointCenter'][0], el['pointCenter'][0] потом вывод всех точек из массива C->1 потом конечная точка el['pointCenter'][0], el['pointCenter'][0] потом вывод всех точек из массива D->0 потом конечная точка el['pointCenter'][0] и т.д. Можно ли такое сделать и как?
Вот такой обьект приходит из php на обработку:
{
 
"C":[{"path":["C","C3","C8","C2","C12","C"],"point":[["48.5515","29.5915"],["45.729","29.7453"],["48.0188","31.0637"],["47.6686","32.404"]],"pointCenter":[["48.4931","32.2721"]]},{"path":["C","C11","C"],"point":[["49.3284","31.1077"]],"pointCenter":[["48.4931","32.2721"]]}],
 
"D":[{"path":["D","D7","D5","D4","D14","D"],"point":[["48.039","38.2796"],["47.1016","35.2604"],["48.6972","35.7438"],["50.0099","37.1602"]],"pointCenter":[["49.5623","34.5573"]]},{"path":["D","D10","D"],"point":[["50.0695","33.7004"]],"pointCenter":[["49.5623","34.5573"]]}],
 
"A":[{"path":["A","A0","A13","A1","A"],"point":[["51.5378","33.5307"],["50.3561","32.1842"],["50.2153","29.5036"]],"pointCenter":[["50.4404","30.5582"]]}],
 
"B":[{"path":["B","B9","B6","B"],"point":[["50.8827","25.3508"],["50.039","25.2796"]],"pointCenter":[["49.3905","27.0426"]]}]
 
}


Вот его обработка:

function fn(data)
{
Object.keys(data).forEach(function (key) {
var p = 0, x = 0;
data[key].forEach(function(el,i) {
console.log(el["point"]);
for(p=0;p<el['point'].length;p++){

ymaps.route([
el['pointCenter'][0],
{
type: 'viaPoint',
point: el['point'][p]
},
el['pointCenter'][0]
]).then(
function (route) {
myMap.geoObjects.add(route);
},
function (error) {
alert("Возникла ошибка: " + error.message);
}
);

}
});
});
}
fn(msg);
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 2
forgotten
@forgotten
Руководитель разработки API Яндекс.Карт
javascript.ru/book/definitiveguide глава «Область видимости функций и замыкания»
Ответ написан
@Dark19 Автор вопроса
а запустить там циклично перебор нельзя или запустить его в функции, а функцию подать как параметр в свойство?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы