Клуб API Карт

Обращение к объекту в нескольких циклах.

zh00pel
17 января 2013, 21:45

Вопрос не по теме api, a по javascript (я новичок, а гуглить решение уже устал).

Пытаюсь сделать тестовый объект, из которого буду создавать точки и у меня загвоздка: 

Вопрос не по теме api, a по javascript (я новичок, а гуглить решение уже устал).

Пытаюсь сделать тестовый объект, из которого буду создавать точки и у меня загвоздка:

 

var item = {
free : {},
group : {}
};
for ( var j = 1; j <= 5; j++) { 
item.group[j] = true;
for ( var i = 1; i <= 10; i++) { 
item.group[j][i]=true;
var x = 55.5 + Math.random() * (.300 - .100) + .100;
var y = 37.4 + Math.random() * (.300 - .100) + .100;
item.group[j][i] = {
position : [ x, y ],
data : {
balloonContent : 'Координаты ' + x + ', ' + y,
iconContent : 'Точка ' + i
}
};
console.log(item.group[j][i]);
}
}

Код не работает. Я подозреваю что это связано с тем, как я обращаюсь к элементам объекта.

item.group[j][i]

item.group[j][i].position[0]

Как это сделать паильно? Может быть цикл for здесь не подходит?

 

4 комментария
Подписаться на комментарии к посту

Проблему в текущем случае решил. Мне потребовалось у первого слоя элементов создать не одни слой а два, т.е. вместо

item.group[j][i], теперь у меня item.group[j].description и item.group[j].items[i].

Но всеже как поступать в таких случаях, хотелось бы знать. У кого-нибудь мысли есть, в чем был неправ? 

Вы присваеваете в один индекс булеан, а потом в него еще один. Пррочитайте какую-нибудь книжку по javascript, рекомендую Фленагана

согласен. слона сам создал и не заметил. нужно было = {}.

Хорошо написана книга, спасибо