Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Неравномерные массивы (https://javascript.ru/forum/misc/12142-neravnomernye-massivy.html)

kukuyok 03.10.2010 04:32

Неравномерные массивы
 
Завожу массив следующего вида:
MenData = new Array();
	mento = new Array();
	menurl = new Array();
	
	//запоняем менюшку
	menurl = new Array('Главная', 'main.html');
	mento.push(menurl);
	MenData.push(mento);
	
	menurl = new Array('Услуги', 'services.html');
	mento.push(menurl);	
		menurl = new Array('Грузоперевозки', 'gruzo.html');
		mento.push(menurl);
		
		menurl = new Array('Откачка септиков', 'septicus.html');
		mento.push(menurl);
		
		menurl = new Array('Вывоз мусора', 'musor.html');
		mento.push(menurl);
	MenData.push(mento);
	
	menurl = new Array('Статьи', 'press.html');
	mento.push(menurl);
	MenData.push(mento);
	
	menurl = new Array('Вакансии', 'vacancy.html');
	mento.push(menurl);
	MenData.push(mento);
	
	menurl = new Array('Контакты', 'contacts.html');
	mento.push(menurl);
	MenData.push(mento);

	alert('Это у нас '+MenData[1][0][0]);
	alert(MenData);


Первый alert выдаёт "Это у нас Главная" вместо предполагаемого "Это у нас Услуги". Второй - пять раз подряд записанный массив. Где я ошибся в понимании массивов в javascript? :-?

Gozar 03.10.2010 10:14

kukuyok,
А каким местом ваша тема относиться к разделу Сайт Javascript.ru?

Kolyaj 03.10.2010 12:21

Цитата:

Сообщение от kukuyok
Где я ошибся в понимании массивов в javascript?

http://alljs.ru/articles/array/

kukuyok 03.10.2010 12:48

Цитата:

Сообщение от Gozar
kukuyok,
А каким местом ваша тема относиться к разделу Сайт Javascript.ru?

Ой-йой! Пардонюсь! Перенести бы сюда :-[
http://javascript.ru/forum/misc/

Sweet 03.10.2010 13:44

Цитата:

Сообщение от kukuyok
Где я ошибся в понимании массивов в javascript?

По-моему, ты ошибаешься в понимании javascript:) В javascript все делается легко и непринужденно, чтобы написание каждой строчки кода приносило удовольствие! А твой массив внешне похож на твой аватар. Нафига создавать такого урода, такими уродскими методами? С ним же невозможно будет работать!!!!
Почему бы не сделать так:
var MenData = [
  ['Главная', 'main.html'],
  ['Услуги', 'services.html'], 
  ['Грузоперевозки', 'gruzo.html'], 
  ['Откачка септиков', 'septicus.html'], 
  ['Вывоз мусора', 'musor.html'], 
  ['Статьи', 'press.html'], 
  ['Вакансии', 'vacancy.html'], 
  ['Контакты', 'contacts.html'], 
  ['Контакты', 'contacts.html'] 
]
??? Правда в данном случае удобнее использовать объекты!!!

Sweet 03.10.2010 14:10

И вовсе непонятно, зачем столько переменных? mento и menurl вообще лишние! Если очень хочется добавлять подмассивы по-очереди, переменные необязательны:
var MenData = [];
MenData.push(['Главная', 'main.html']);
MenData.push(['Услуги', 'services.html']);
MenData.push(['Грузоперевозки', 'gruzo.html']);
MenData.push(['Откачка септиков', 'septicus.html']);
MenData.push(['Вывоз мусора', 'musor.html']);
MenData.push(['Статьи', 'press.html']);
MenData.push(['Вакансии', 'vacancy.html']);
MenData.push(['Контакты', 'contacts.html']);

kukuyok 03.10.2010 15:36

Sweet,
О! Спасибо! Давно искал такую запись! Но! Мне нужно, чтобы в массиве массивов массивов была такая структура:

MenData - массив, содержащий всё меню. Состоит из массивов mento.
|
mento - подмассив, в котором 1-й элемент - массив из двух элементов: Названия пункта и URL; 2-й элемент (если есть) - длинный массив из таких же mento (для различения ввёл доп. переменную menurl).

А запись таким образом, который предлагаете Вы - заводит простой одномерный массив.

kukuyok 03.10.2010 15:44

Гммм... описал, что хотел получить и, кажется, сам себя поймал... :)

kukuyok 03.10.2010 19:05

Вот, собственно, что мне было нужно:
MenData = [
		[
			['Главная', 'main.html']
		],
		[
			['Услуги и цены', 'service.html'],
			[
				['Вывоз мусора', 'musor.html'],
				['Грузоперевозки', 'gruzo.html'],
				['Откачка септиков', 'septicus.html']
			]
		],
		[
			['Статьи', 'press.html']
		],
		[
			['Вакансии', 'vacancy.html']
		],
		[
			['Контакты', 'contacts.html']
		]
	];


Теперь всё работАт. Спасибо, Sweet!

Gozar 03.10.2010 22:30

kukuyok,
для таких структур используют json - обычный объект javascript, а не изврат с массивами.

извращенцы :)


Часовой пояс GMT +3, время: 21:10.