Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разбор нестандартного массива! (https://javascript.ru/forum/misc/6243-razbor-nestandartnogo-massiva.html)

getElementById 19.11.2009 18:24

Разбор нестандартного массива!
 
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/

Riim 19.11.2009 18:43

alert(/1995|2007|2019/.toString().replace(/^\/|\/$/g, '').split(/\|/g));

Kolyaj 19.11.2009 18:56

Riim,
проще надо :)
alert(/1995|2007|2019/.source.split('|'));

Riim 19.11.2009 18:58

Цитата:

Сообщение от Kolyaj
source

а я все "text" пробовал :) .

Цитата:

Сообщение от Kolyaj
split('|')

эх, опять путаю с replace, который без регулярки один раз заменяет.

getElementById 19.11.2009 19:19

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

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

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


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

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

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

как сделать чтоб перебирало все три столбца, 1984 - 2019.

getElementById 19.11.2009 19:22

ой, пока писал тут ещё напостили, ща попробую вариант Kolyaj....

Riim 19.11.2009 19:26

Нифига не понял, как перебирать надо? Что в конце должно получиться?

getElementById 19.11.2009 19:42

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


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

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


то будет 1995, а нада все три по отдельности чтоб перебирались.
ну вродь теперь понятно рассказал))

Riim 19.11.2009 20:37

Так:

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


?

getElementById 19.11.2009 21:12

неа :(

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

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


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