22.01.2015 17:22
KirillHome
 
Наткнулся на то, что желательно было бы использовать двумерный массив.
Казалось бы - что сложного?
Всё происходит &НаКлиенте

Вариант 1 //Просто объявить
Код:
ДвумМассив = Новый Массив (10,2);
//И дальше - заполнять
ДвумМассив[0][0] = "1-й индекс";
ДвумМассив[0][1] = "1-е значение";
ДвумМассив[1][0] = "2-й индекс";
ДвумМассив[1][1] = "2-е значение";
//и так далее...
Но этот вариант - как говорится - не наш метод.
Во-первых - надо заранее знать "количество пар", во-вторых - можно ошибиться в указании индекса (что я и сделал первоначально ).

Вариант 2 //Используем второй массив из двух элементов
Код:
ДвумМассив = Новый Массив;
ОднмМассив = Новый Массив(2);
//И дальше - заполнять
ОднмМассив[0] = "1-й индекс";
ОднмМассив[1] = "1-е значение";
ДвумМассив.Добавить(ОднмМассив);

ОднмМассив[0] = "2-й индекс";
ОднмМассив[1] = "2-е значение";
ДвумМассив.Добавить(ОднмМассив);
//И так далее.
И получил удивительный (для меня) результат.
Цитата:
ДвумМассив[0][0] равен "2-й индекс"
ДвумМассив[0][1] равен "2-е значение"
ДвумМассив[1][0] равен "2-й индекс"
ДвумМассив[1][1] равен "2-е значение"
вместо ожидаемых
Цитата:
ДвумМассив[0][0] равен "1-й индекс"
ДвумМассив[0][1] равен "1-е значение"
ДвумМассив[1][0] равен "2-й индекс"
ДвумМассив[1][1] равен "2-е значение"
При этом - если после первой итерации передать массив &НаСервер (к примеру, для вывода) - то результат становится правильным. Но не будешь же постоянно гонять данные между клиентом и сервером?

В результате заработал Вариант 3
Код:
ДвумМассив = Новый Массив;
ОднмМассив = Новый Массив(2);
//И дальше - заполнять
ОднмМассив[0] = "1-й индекс";
ОднмМассив[1] = "1-е значение";
ДвумМассив.Добавить(ОднмМассив);

ОднмМассив = Новый Массив(2);
//Заново объявил одномерный массив "новым".
ОднмМассив[0] = "2-й индекс";
ОднмМассив[1] = "2-е значение";
ДвумМассив.Добавить(ОднмМассив);
//И так далее.
и только тогда уже получил правильный результат
Цитата:
ДвумМассив[0][0] равен "1-й индекс"
ДвумМассив[0][1] равен "1-е значение"
ДвумМассив[1][0] равен "2-й индекс"
ДвумМассив[1][1] равен "2-е значение"
Попробовал заново объявлять "новый" одномерный массив - уже от безысходности. Но логики - всё равно не понял.

Поэтому - для памяти - оставлю здесь.
Часовой пояс GMT +3, время: 17:58.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.