Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.11.2009, 18:24
Аватар для getElementById
Интересующийся
Отправить личное сообщение для getElementById Посмотреть профиль Найти все сообщения от getElementById
 
Регистрация: 06.11.2009
Сообщений: 14

Разбор нестандартного массива!
var spisokYear = [
		[/1984|1996|2008/, 'Кры'],
		[/1985|1997|2009/, 'Бык'],
		[/1986|1998|2010/, 'Тиг'],
		[/1987|1999|2011/, 'Кот'],
		[/1988|2000|2012/, 'Дра'],
		[/1989|2001|2013/, 'Зме'],
		[/1990|2002|2014/, 'Лош'],
		[/1991|2003|2015/, 'Коз'],
		[/1992|2004|2016/, 'Обе'],
		[/1993|2005|2017/, 'Пет'],
		[/1994|2006|2018/, 'Соб'],
		[/1995|2007|2019/, 'Сви']
]
	var t = document.getElementById('rightColumn').childNodes[3];
	for (i=0, len=spisokYear.length; i<len; i++) {
		var byear = /c[\[%5B]{1,3}byear[\]%5D]{1,3}=([0-9]{4})/.exec(t.innerHTML);
		    if (byear[1]==spisokYear[i][0]) {
			var h = document.getElementById('rightColumn');
			h.outerHTML+=spisokYear[i][1];
			}


Видел в скриптах такие массивы, но сам не могу осилить....
Вот написал к примеру этот кусочек, как сделать, чтобы spisokYear[i][0] разбивался на кусочки 1995, 2007 и 2019 , а не просто как записано в массиве /1995|2007|2019/
Ответить с цитированием
  #2 (permalink)  
Старый 19.11.2009, 18:43
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

alert(/1995|2007|2019/.toString().replace(/^\/|\/$/g, '').split(/\|/g));
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2009, 18:56
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Riim,
проще надо
alert(/1995|2007|2019/.source.split('|'));
Ответить с цитированием
  #4 (permalink)  
Старый 19.11.2009, 18:58
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Kolyaj
source
а я все "text" пробовал .

Сообщение от Kolyaj
split('|')
эх, опять путаю с replace, который без регулярки один раз заменяет.
Ответить с цитированием
  #5 (permalink)  
Старый 19.11.2009, 19:19
Аватар для getElementById
Интересующийся
Отправить личное сообщение для getElementById Посмотреть профиль Найти все сообщения от getElementById
 
Регистрация: 06.11.2009
Сообщений: 14

супер! огромное спасибо, очень продвинулся....

но, не могу добить уже до конца, чтоб как задуманно, получается ток один стобец.

var horoscopeYear = spisokYear[i][0].toString().replace(/^\/|\/$/g, '').split(/\|/g);
alert(horoscopeYear);


перебирает все три значения через запятую...

сделал так:
alert(horoscopeYear[0]);

перебирает первый столбец, соответственно 1984 - 1995, уже близко, но нужно все три чтоб, сделаю horoscopeYear[1] - соответственно второй только столбец будет перебираться 1996 - 2007, ну вы в прочем и без меня это всё понимаете :[.

как сделать чтоб перебирало все три столбца, 1984 - 2019.
Ответить с цитированием
  #6 (permalink)  
Старый 19.11.2009, 19:22
Аватар для getElementById
Интересующийся
Отправить личное сообщение для getElementById Посмотреть профиль Найти все сообщения от getElementById
 
Регистрация: 06.11.2009
Сообщений: 14

ой, пока писал тут ещё напостили, ща попробую вариант Kolyaj....
Ответить с цитированием
  #7 (permalink)  
Старый 19.11.2009, 19:26
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Нифига не понял, как перебирать надо? Что в конце должно получиться?
Ответить с цитированием
  #8 (permalink)  
Старый 19.11.2009, 19:42
Аватар для getElementById
Интересующийся
Отправить личное сообщение для getElementById Посмотреть профиль Найти все сообщения от getElementById
 
Регистрация: 06.11.2009
Сообщений: 14

ну чтобы перебиралось по одному значению, когда
alert(/1995|2007|2019/.source.split('|'));


то результат 1995,2007,2019

а надо чтоб каждое значение было по отдельности, к примеру если сделать
var hh = /1995|2007|2019/.source.split('|');
alert(hh[0]);


то будет 1995, а нада все три по отдельности чтоб перебирались.
ну вродь теперь понятно рассказал))
Ответить с цитированием
  #9 (permalink)  
Старый 19.11.2009, 20:37
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Так:

var hh = /1995|2007|2019/.source.split('|'), h1 = hh[0], h2 = hh[1], h3 = hh[2];
alert(h1);
alert(h2);
alert(h3);


?
Ответить с цитированием
  #10 (permalink)  
Старый 19.11.2009, 21:12
Аватар для getElementById
Интересующийся
Отправить личное сообщение для getElementById Посмотреть профиль Найти все сообщения от getElementById
 
Регистрация: 06.11.2009
Сообщений: 14

неа

гляньте пожалуйста на массив "spisokYear" в первом посте...
мне нужно через условие if перебрать эти года, по одному значению.

var hh = spisokYear[i][0].source.split('|');
if(cc[1]==hh[0]) { // тут гляньте первый массив(первый пост)
// в hh[0] будет перебор от 1984 до 1995
// как осуществить перебор от начала до конца(1984-2019)

Последний раз редактировалось getElementById, 19.11.2009 в 21:16.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
есть ли стандартная функция вывода сожержимого массива что то вроди print_r в PHP??? mazovski Events/DOM/Window 4 20.08.2009 12:52
Как сформировать строку из массива di@mond Я не знаю javascript 9 11.06.2009 17:35
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01