Проблема с массивами.
Здраствуйте. помогите пожалуйста решить новичку одну проблему.
Есть определенный массив. А в массиве еще один массив. т.е: 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, время: 17:54. |