Вопросы по 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, время: 00:45. |