Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   не могу понять (https://javascript.ru/forum/offtopic/8111-ne-mogu-ponyat.html)

lammeR 08.03.2010 19:12

не могу понять
 
Почему не работает такая конструкция?:
var massNums=[0,1,2];
var mass=['num0','num1','num2'];
alert(mass[massNums]);

По идее должны выводиться элементы массива mass, так как числа массива massNums соотв. индексам элементам массива mass

Octane 08.03.2010 19:13

это в каком языке так работает?

lammeR 08.03.2010 19:16

Octane,
ни в каком , я не могу понять почему

Octane 08.03.2010 19:18

:D жжешь

lammeR 08.03.2010 19:20

жгу- не жгу, а не понимаю и всё:(

Octane 08.03.2010 19:30

Сам придумал какую-то конструкцию и голову ломаешь?)

Вообще в JS это следующим образом работает:
var massNums=[0,1,2];
var mass = ['num0','num1','num2'];

mass[massNums] // логично, что имя свойства объекта — строка,
               // значит для massNums срабатывает toString:
alert(massNums.toString()); // "0,1,2"

// значит мы пытаемся получить свойство c именем "0,1,2" объекта mass,
// которого в объекте нет, вот и получаем undefined:
alert(mass["0,1,2"]);

lammeR 08.03.2010 19:39

Octane,
ну, наконец, дождался от Вас ответа, спасибо, понял.)

Gozar 08.03.2010 22:05

lammeR,
Гы а так:
var masNums = (0,1,2);
var mass = ['num0','num1','num2'];
alert(mass[masNums]);

поймёте? :)

Gozar 08.03.2010 22:07

или вот так:
var masNums = ([0,1,2])[2];
var mass = ['num0','num1','num2'];
alert(mass[masNums]);

:)

B~Vladi 08.03.2010 23:07

Gozar, шайтан:)


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