Проблема с массивами.
Здраствуйте. помогите пожалуйста решить новичку одну проблему.
Есть определенный массив. А в массиве еще один массив. т.е: table[0] = new Array(0, 0, 0, 0, 0 ... ); table[1] = new Array(0, 0, 0, 0, 0 ...); table[2] = new Array(0, 0, 0, 0, 0 ... ); table[3] = new Array(0, 0, 0, 0, 0 ... ); ... Я пытаюсь поменять только значение внутреннего массива следующим способом table[2][1] = 1; Должно получится вот так: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 Однако в результате получаю вот это. 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 Пробовал также изменять значения с помощью функции splice, однако результат получается такой же. Что не так? В чем косяк? |
Не могло так получится и нумерация элементов массива начинается с нуля:
var table = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]
];
table[2][0] = 1;
alert(table.join("\n"));
Ваша ситуация могла произойти только в подобном случае:
var array = [0, 0, 0, 0, 0];
var table = [array, array, array, array];
table[2][0] = 1;
alert(table.join("\n"));
потому что массив, как объект, передается по ссылке, а не копируется. |
Octane:
Спасибо, проблема проблема оказалась выше в коде как ты предсказал массив создавался вот таким: Цитата:
|
| Часовой пояс GMT +3, время: 00:22. |