Вопросы по 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]);
|
Цитата:
![]() |
Как объяснили так я и понял.
Сказали что заменяет. Я так и понял что заменяет. Проверил, не заменяет на самом деле.# Вы объясняете также как врач пишет. Легче уже википедию читать в самом деле. |
Как правильно говорится: в светлой голове светлые мысли.
Картинки ещё постит. Советовал бы я вам потренироваться в излагании мыслей. Билебирду понапишут и хотят чтобы их поняли. Да ещё смеют критиковать курсы которые я смотрю. |
Цитата:
|
Попытаюсь сам на свой вопрос ответить.
Многомерный массив имеет другую структуру адреса чем одномерный. И обращаться к нему можно только так array[][] задавая двойной параметр. Массив не может быть и двумерным и одномерным одновременно. То-есть если он двумерный array[][] и в нём сохранить информацию так array[], то структура адресов испортится. |
Цитата:
Авария с головой в излагательной области. |
Можно это записать короче? http://jsfiddle.net/LYBKQ/8/
Написал как мог теми средствами которые знаю. Может можно сделать код короче? |
Ишаки мля.
То им слишком легко. То им слишком сложно. Бычий контингент. Форум загнётся. Вот моё предсказание. |
Цитата:
|
Если что-то бесполезно, то оно вымирает. Атавизм называется.
|
Цитата:
var array = new Array(10);
for(var i = 0; i < array.length; i++)
{array[i] = new Array(10);}
array[0] = 3;
array[2] = 5;
array[4] = 7;
if(!Array.isArray) {
Array.isArray = function(arg) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
}
for(var i = 0; i < array.length; i++) {
alert(i + ' - ' + (Array.isArray(array[i]) ? 'массив' : 'не массив'));
}
|
Цитата:
|
Цитата:
|
Цитата:
koderman, а не думала твоя козья голова, что у нас нет времени и желания таким как ты помогать? Вопрос риторический. |
Да я уже понял, пофлудить вы любите. А как объяснить, так прикидываетесь китайцами. Такое ощущение что вы свои ответы через китайский переводчик переводите.
BallsShaped, оттого он и атавизм что у 99% этого нету. Честное слово, ни в программировании, ни в жизни. Вас можно экспонатом возить в качестве объяснения термина атавизм. Даже здесь сцуко баран решил загвоздку найти. Парнокопытный. nerv_, представь я стараюсь говорить что вижу. Один картинки постит, другой сарказничает. Форум. Да кому это надо такое. Наверное тем кто хочет 20 лет что-то изучать. Тьфу тьфу, от таких как ты ответы мне не нужны. Человек-недоразумение. BETEPAH, я яваскрипт изучаю месяц и уже написал программу. Единственное моё неправильное решение было это заходить на этот форум и терять время. |
Посмотри лошадь как я пытался объяснить людям то что знал и как можно понятнее.
http://javascript.ru/forum/study/452...x-s-nulya.html Человеческим языком и не через китайский переводчик. Если понадобились бы скриншоты или прочие диаграммы, то и их бы сделал. А они заходят в тему со своими сме*ерочками. Или китайцы мимикрируют в русскоязычных или алкоголики, мозг пропили. |
BETEPAH исправляется. Уже лучше на примере показал.
|
nerv_,
вот какой он - первый кармаслив :thanks: :dance: |
| Часовой пояс GMT +3, время: 01:55. |