Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка доступа к перечисляемым свойствам объекта в массиве for in (https://javascript.ru/forum/misc/24636-oshibka-dostupa-k-perechislyaemym-svojjstvam-obekta-v-massive.html)

Sundro 08.01.2012 17:44

Ошибка доступа к перечисляемым свойствам объекта в массиве for in
 
Есть такой код который отказывается работать(в Лисе точно),
var startX = 4
var startY = 4
var coordsNeighboringCells = {
x1: [startX,startY-1],
x2: [startX,startY+1],
y1: [startX-1,startY],
y2: [startX+1,startY]
}
for (var prop in coordsNeighboringCells){
alert(prop)
alert(typeof coordsNeighboringCells.(prop))
alert(coordsNeighboringCells.(prop)[0])
}
Предполагалось что он должен работать так, в цикле получаем имя свойства а в выражениии coordsNieghboringCells.(prop) получаю ссылку на массив а с помощью [0] получаю собственно значение. Однако видимо не все так как я думаю, код выдает ошибку, из нее я понять ниче не смог =( Намекните пожалуйста в чем проблема тут.

Livaanderiamarum 08.01.2012 17:47

alert(typeof coordsNeighboringCells.(prop))
----
это че захуйня?

выброси её и замени на
alert(typeof coordsNeighboringCells[prop])
alert(coordsNeighboringCells[prop][0])

Sundro 08.01.2012 18:00

А мля, фак май моск....спасибо. И все-таки почему не работает мой вариант ведь в итоге coordsNeighboringCells.(prop) должен заменится на coordsNeighboringCells.x1[0] и по идее должно работать, т.е я имею ввиду что выражение (prop) должно вычислятся и подставляться при каждом проходе цикла.

Livaanderiamarum 08.01.2012 18:11

Цитата:

Сообщение от Sundro (Сообщение 148902)
А мля, фак май моск....спасибо. И все-таки почему не работает мой вариант ведь в итоге coordsNeighboringCells.(prop) должен заменится на coordsNeighboringCells.x1[0] и по идее должно работать, т.е я имею ввиду что выражение (prop) должно вычислятся и подставляться при каждом проходе цикла.

потому что оператор точка работает не с выражениями а с ИДЕНТЕФИКАТОРАМИ.
То есть справа от точки движок ожидает увидеть идентефикатор. а там лежит строка (результат работы выражения).

Sundro 08.01.2012 18:28

Ага еще раз спасибо, сам бы долго еще догонял.

Livaanderiamarum 08.01.2012 18:57

Цитата:

Сообщение от Sundro (Сообщение 148909)
Ага еще раз спасибо, сам бы долго еще догонял.

В карму плюсани:)

Sundro 08.01.2012 19:29

Уже сделал, только она не прибавилась. А второй раз не дает

Livaanderiamarum 08.01.2012 19:31

Цитата:

Сообщение от Sundro (Сообщение 148934)
Уже сделал, только она не прибавилась. А второй раз не дает

Пасиба) решил кармы 10К набрать)) буду всем помогать и прикольные штуки давать)


Часовой пояс GMT +3, время: 11:08.