Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   for не присваивает значение (https://javascript.ru/forum/misc/51166-ne-prisvaivaet-znachenie.html)

lucky89 27.10.2014 11:42

for не присваивает значение
 
Здравствуйте!
Столкнулся с такой загадкой:
есть элемент cmIndex[0][0], в котором значение 'RUB'.
пишу:
console.log(cmIndex[0][0]); //Вывод, как надо 'RUB'

пишу в цикле:
var input={};
input.num=0;
for(var i=0;cmInputType!=cmIndex[i][0];i++){input.num++;}
//Ошибка: Uncaught TypeError: Cannot read property '0' of undefined

Ругается на [0]. То есть:
(var i=0;cmInputType!=cmIndex[i];i++) //Нет ошибки
(var i=0;cmInputType!=cmIndex[i][0];i++) //Есть ошибка

Приходится переписывать цикл так:
for(var i=0;cmIndex[i];i++){
if (cmInputType!=cmIndex[i][0]){input.num++;}

Так длиннее и вложенность добавляется. Хочу, чтобы все красиво было. Почему в цикле for не получается присвоить элементу значение из подмассива? Как с этим бороться?

ksa 27.10.2014 13:44

Цитата:

Сообщение от lucky89
Почему в цикле for не получается присвоить элементу значение из подмассива?

Чего, чего? :blink:
Где у тебя какое-то присвоение?

Вот тест твоей конструкции

var input={};
input.num=0;
var cmInputType='RUB';
var cmIndex=[
	['t0'],
	['t1'],
	['RUB']
];
alert(cmIndex[0][0]);
for(var i=0;cmInputType!=cmIndex[i][0];i++){
	input.num++;
};
alert(input.num);

Все правильно посчиталось - 2 элемента не RUB...


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