Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> двухмерные массивы, двухмерные массивы 
V
    Опции темы
ОнКофе
Дата 1.4.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Есть массив

Код

var Arr = new Array(
  {title:"0", sub:new Array(
    {title:"01"},
    {title:"02"},
    {title:"03"})
  },
  {title:"1", sub:new Array(
    {title:"11"},
    {title:"12"})
  }
);


Пытаюсь добавить в массив элементы
Код

Arr[2.0] = "2.0";
Arr[2.1] = "2.1";


естественно не получается... как правильно сделать?
PM MAIL WWW   Вверх
bars80080
Дата 1.4.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



в качестве параметра наверно может выступать только строка или число:

Код

Arr[2] = 'qw';
Arr['par'] = 'sd';

PM MAIL WWW   Вверх
ОнКофе
Дата 1.4.2008, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Цитата(bars80080 @ 1.4.2008,  17:46)
в качестве параметра наверно может выступать только строка или число:

Код

Arr[2] = 'qw';
Arr['par'] = 'sd';

и как это можно применить к ситуации?
PM MAIL WWW   Вверх
Samotnik
Дата 1.4.2008, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: нет
Всего: 191



ОнКофе,  а так ?
Код

Arr[0][0] = "12";


PM MAIL   Вверх
ksnk
Дата 1.4.2008, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Код

var Arr = {
  0:{title:"0", sub:new Array(
    {title:"01"},
    {title:"02"},
    {title:"03"})
  },
  1:{title:"1", sub:new Array(
    {title:"11"},
    {title:"12"})
  }
}
Arr['2.0'] = "2.0";
Arr['2.1'] = "2.1";


Добавлено через 46 секунд
ОнКофе, А чего сделать-то надо было?  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ОнКофе
Дата 1.4.2008, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



нет ребята... не получается... нужно добавить в массив еще элементы, а вы пытаетесь заменить существующие....

я прошу помочь мне разобраться как в двухмерный массив можно добавить новые значения.
с одномерным просто:

Код

var x = ["a", "b", "c", "d"]
x.push("e");


а как в двухмерный добавлять?
PM MAIL WWW   Вверх
solenko
Дата 1.4.2008, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 1
Всего: 67



ОнКофе, 
1. Многомерных массивов в JS нет.
2. 
Код

var Arr = new Array(
  {title:"0", sub:new Array(
    {title:"01"},
    {title:"02"},
    {title:"03"})
  },
  {title:"1", sub:new Array(
    {title:"11"},
    {title:"12"})
  }
);

Это не массив, а объект. Попробуйте alert(Arr.length);

Поэтому "разобраться как в двухмерный массив можно добавить новые значения" невозможно )




--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 1.4.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Цитата(solenko @  1.4.2008,  19:20 Найти цитируемый пост)
Это не массив, а объект. Попробуйте alert(Arr.length);

Вот это - таки массив, а не объект smile alert(Arr.length) выдает 2.

Добавлено через 3 минуты и 28 секунд
ОнКофе, Двумерный массив в JavaScript - это массив из одномерных массивов. Так что добавить новое значение так-же, как и в одномерный массив
Arr[0].push({title:"04"});

Добавлено через 7 минут и 25 секунд
Только боюсь, почитать про типы данных в JavaScript't все-таки стоит...
впрочем, без ответа на вопрос , "а чего сделать-то надо?" ничего путнего мы тут можем и не посоветовать...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
solenko
Дата 1.4.2008, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 1
Всего: 67



Мне стыдно. Почему-то не увидел первое "new Array("  smile 
(хотясути это не меняет)


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
ОнКофе
Дата 2.4.2008, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Цитата(ksnk @  1.4.2008,  19:41 Найти цитируемый пост)
Arr[0].push({title:"04"});


попробовал - не получилось....

сделал вот так
Код

var Arr = new Array(
  {title:"0", sub:new Array('00','01','02')},
  {title:"1", sub:new Array('10','11','12')}
);

Arr[0].sub.push("03");


Сейчас работает нормально все ок! Всем спасибо!

Добавлено @ 12:21
Ан-нет! нужно все-таки как-то добавлять в массив вида
Код

var Arr = new Array(
  {title:"0", sub:new Array(
    {title:"01", name:"011"},
    {title:"02", name:"021"},
    {title:"03", name:"031"})
  },
  {title:"1", sub:new Array(
    {title:"11", name:"111"},
    {title:"12", name:"111"})
  }
);


после добавления массив должен получиться следующим:

Код

var Arr = new Array(
  {title:"0", sub:new Array(
    {title:"01", name:"011"},
    {title:"02", name:"021"},
    {title:"03", name:"031"},
    {title:"04", name:"041"})
  },
  {title:"1", sub:new Array(
    {title:"11", name:"111"},
    {title:"12", name:"111"})
  }
);


Это сообщение отредактировал(а) ОнКофе - 2.4.2008, 12:33
PM MAIL WWW   Вверх
TryLight
Дата 2.4.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 26.8.2007

Репутация: нет
Всего: 1



Чета я вообще не понимаю, что вы тут делаете:

Код

var mas1 = new Array ("01","02","03");
var mas2 = new Array ("11","12");

var Arr = new Array;

Arr[0] = mas1;
Arr[1] = mas2;

Arr[0].push("13");

alert(Arr[0][3]);

PM MAIL WWW   Вверх
solenko
Дата 2.4.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 1
Всего: 67



Тогда так:
Код

<script>
var Arr = new Array(
  {title:"0", sub:new Array(
    {title:"01", name:"011"},
    {title:"02", name:"021"},
    {title:"03", name:"031"})
  },
  {title:"1", sub:new Array(
    {title:"11", name:"111"},
    {title:"12", name:"111"})
  }
);
Arr[0].sub.push({title:"04", name:"041"});
alert(Arr.toSource());
</script>




--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
TryLight
Дата 2.4.2008, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 26.8.2007

Репутация: нет
Всего: 1



Чето я вообще не понимаю, что вы тут делаете:
Код

var mas1 = new Array ("01","02","03");
var mas2 = new Array ("11","12");

var Arr = new Array;

Arr[0] = mas1;
Arr[1] = mas2;

Arr[0].push("04");

alert(Arr[0][3]);

PM MAIL WWW   Вверх
ОнКофе
Дата 2.4.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



solenko, да действительно работает!
Но теперь не получается добавить 3 элемент массива, чтобы в результате получилось
Код

var Arr = new Array(
  {title:"0", sub:new Array(
    {title:"01", name:"011"},
    {title:"02", name:"021"},
    {title:"03", name:"031"})
  },
  {title:"1", sub:new Array(
    {title:"11", name:"111"},
    {title:"12", name:"121"})
  },
  {title:"2", sub:new Array(
    {title:"21", name:"211"},
    {title:"22", name:"221"})
  }
);





я вот так написал, вроде бы работает:
Код

var Arr = new Array(
  {title:"0", sub:new Array(
    {title:"01", name:"011"},
    {title:"02", name:"021"},
    {title:"03", name:"031"})
  },
  {title:"1", sub:new Array(
    {title:"11", name:"111"},
    {title:"12", name:"111"})
  }
);

Arr.push({title:"2", sub:new Array()});
Arr[2].sub.push({title:"21", name:"211"});
Arr[2].sub.push({title:"22", name:"212"});



что-то сложновастенько...... может есть варианты попроще?


Это сообщение отредактировал(а) ОнКофе - 2.4.2008, 15:11
PM MAIL WWW   Вверх
Darsi
Дата 13.4.2008, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 8.4.2008

Репутация: нет
Всего: нет



Привет всем!!! С прошедшим Днём Космонавтики!!!!

Очень нужна помомощь))))))))))))))) 

Вот код, который выводит массив элементов добытых из матрицы по спирали, у меня не выходит записать матрицу, элементами которой были бы элементы массива, но взятые в обратном порядке


program prg4;
{ sozdoet matr elementi kotoroj
dobuti chteniem matr po spirali }
uses crt;
type TMatrix=array[1..15,1..15]of real;
     TVector=array[1..225]of real;
procedure InputMatrix(var A:TMatrix;var n:byte);
var i,j:integer;
     q:char;
begin
write('n=');readln(n);
write('Input by hand(y/n)?');
readln(q);
if (q='y')or(q='Y')then
for i:=1 to n do
     FOR J:=1 TO N DO
     begin
     write('A[',i,',',j,']=');
     readln(a[i,j])
     end
else
begin randomize;
for i:=1 to n do
     for j:=1 to n do
     a[i,j]:=random(999)/10;
end;
end;
procedure OutputMatrix(const a:Tmatrix;m:byte);
var i,j:byte;
begin
for i:=1 to m do
     begin
     for j:=1 to m do
     write(a[i,j]:6:1);
     writeln;
     end;
end;
procedure MatrixVector(const x:TMatrix;var y:TVector;n:byte);
var i,j,k,l:byte;
begin
 l:=0;
 for k:=1 to (n+1)div 2 do
     begin
     for j:=k to n-k+1 do
         begin
         l:=l+1;
         y[l]:=x[k,j];
         end;
     for i:=k+1 to n-k+1 do
         begin
         l:=l+1;
         y[l]:=x[i,n-k+1];
         end;
     for j:=n-k downto k do
         begin
         l:=l+1;
         y[l]:=x[n-k+1,j];
         end;
     for i:=n-k downto k+1 do
         begin
         l:=l+1;
         y[l]:=x[i,k];
         end;
     end;
end;
procedure OutputVector(const vect:TVector;m:byte);
var i:byte;
begin
writeln('Masiv:');
for i:=1 to m do
write(Vect[i]:7:1);
end;
var a:TMatrix;
     b:TVector;
     n:byte;
begin
clrscr;
InputMatrix(a,n);
OutputMatrix(a,n);
MatrixVector(a,b,n);
OutputVector(b,n*n);
readkey;
end.

Добавлено через 46 секунд
Помогите, пожалусто))))))))))))))))))))))) smile  smile  smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0649 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.