![]() |
Изменение элемента двумерного массива
Создаю в Action Script двумерный массив Arr, заполняю его числовыми данными. Затем мне требуется менять эти данные. Пробую сделать это командой Arr[1][1] = 5, в результате все значения второго столбца, а не только второй ячейки меняются на 5. Что я делаю неправильно, и как менять значения в двумерном массиве?
|
Покажи, как создаешь и заполняешь двумерный массив.
|
Я создала специальную программу для проверки, чтобы избежать влияния посторонних ошибок. Происходит то же самое.
Создание и заполнение массива следующее: Код AS3:
Код AS3:
1,5,5,5,5 1,5,5,5,5 1,5,5,5,5 1,5,5,5,5 1,5,5,5,5 |
Массив, это объект. А все объекты передают на себя ссылки, а не значения.
Поэтому, все элементы массива Arr2, хранят в себе ссылки на массив Arr. Поэтому, нужно делать так: Код AS3:
|
Все заработало. Спасибо за помощь!
|
Если максимальный размер двухмерного массива не критичен, то я бы имитировал двумерные массивы через один одномерный, но с доступом и чтением по формуле i * w + j, где i - смещение по вертикали, w - количество колонок, j - смещение по горизонтали. Таким образом можно избежать создания лишних вложенных массивов.
|
wvxvw, а есть еще плюсы вашего подхода, кроме избегания создания лишних массивов?
|
Цитата:
|
>>При возрастании массива, это приведет к проблемам.
а кто-нибудь мерял-тестил на каких длинах начинаются проблемы ? и да: а каких проблем тут ждать |
:D речь, наверное, шла об увеличении количества столбцов
|
| Часовой пояс GMT +4, время: 22:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.