Вопросы по Javascript.
Многомерный массив.
Почему не присваивается число к array[1][1] = 5; Вроде правильно всё? var array = new Array(10); for(var i = 0; i < array.length; i++) {array[i] = new Array(10);} array[1] = 3; array[1][1] = 5; alert(array[1][1]); |
Цитата:
var array = new Array(10); for (var i = 0; i < array.length; i++) { array[i] = new Array(10); } array[1] = 3; alert(JSON.stringify(array)); |
Потому что это на самом деле массив массивов, и делая так
array[1] = 3;Вы на самом деле заменяете массив под номером 1 на число, и в итоге array[1][1] = 5;~ 3[1] = 5;что, естесно, бред. Если очень хочется - можно применить хак: function toString(){ return this.value+'' } function toInt(){ return parseInt(this.value,10) } var array = new Array(10); for(var i = 0; i < array.length; i++) {array[i] = new Array(10);} array[1].value = 3; array[1].toString = toString; array[1].valueOf = toInt; array[1][1] = 5; alert(array[1]); alert(array[1][1]);но лучше придумать что-нибудь другое. |
Я так думал что по адресу array[1] будет находиться 3. А по адресу array[1][1] будет находиться 5.
Так? |
Не так.
var array = new Array(10); // array = [,,,,,,,,,,] for(var i = 0; i < array.length; i++) {array[i] = new Array(10);} /* array = [ [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,] ] */ array[1] = 3; /* array = [ [,,,,,,,,,,], 3, [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,], [,,,,,,,,,,] ] */ array[1][1] = 5; /* error */ |
Здесь сделано по такому принципу и всё работает.
Сначала такому типу массива присваиваются данные array[] А потом такому array[][] Это таблица умножения. var array = new Array(10); for(var i = 0; i < array.length; i++) {array[i] = new Array(10);} for(var j = 0; j < array.length; j++) { for(var n = 0; n < array[j].length; n++){ array[j][n] = j*n; }} alert(array[8][5]); |
Цитата:
Неправда. Ничего не заменяется. var array = new Array(10); for(var i = 0; i < array.length; i++) {array[i] = new Array(10);} array[1]= 3; array[2] =5; array[3] =7; alert(array[1]); alert(array[2]); alert(array[3]); |
Цитата:
![]() |
Как объяснили так я и понял.
Сказали что заменяет. Я так и понял что заменяет. Проверил, не заменяет на самом деле.# Вы объясняете также как врач пишет. Легче уже википедию читать в самом деле. |
Как правильно говорится: в светлой голове светлые мысли.
Картинки ещё постит. Советовал бы я вам потренироваться в излагании мыслей. Билебирду понапишут и хотят чтобы их поняли. Да ещё смеют критиковать курсы которые я смотрю. |
Часовой пояс GMT +3, время: 15:59. |