Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему так происходит? (https://javascript.ru/forum/misc/37366-pochemu-tak-proiskhodit.html)

dima*** 17.04.2013 09:13

Почему так происходит?
 
Почему так происходит?

document.write(b1[i][1]);//НохчоФК Оргаanzor95undefined-откуда взялся undefined?

document.write(b1[0][1]);//НохчоНохчоНохчоНохчо-почему Нохчо повторяется 4 раза,а не один?

document.write(b1[1][1]);//ФК ОргаФК ОргаФК Орга-почему ФК Орга-3 раза,а не один?

document.write(b1[2][1]);//anzor95anzor95-почему anzor95-2 раза,а не один?

Подскажите пожалуйста или ссылку скиньте,где почитать.



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>

<body>

<p style='display:none'>
• Самашки - Вайнах 1:4
Берд - Лидер 2:3
ЧГУ - Низам 1:2
Родник - Авангард 2:1
Тайфун - Динамо 0:2
Казбек-Горец 0:2
Спартак - Мартан 2:1
ЧГПИ - Даймохк 1:1
Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 

• Самашки-Вайнах 1:3
Берд-Лидер 0:2
ЧГУ-Низам 2:2
Родник-Авангард 1:2
Тайфун-Динамо 1:3
Казбек-Горец 0:4
Спартак-Мартан 0:0
ЧГПИ-Даймохк 1:5
Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 

• Самашки-Вайнах 1-1
Берд-Лидер 1-3
ЧГУ-Низам 1-2
Родник-Авангард 2-3
Тайфун-Динамо 1-3
Казбек-Горец 1-4
Спартак-Мартан 2-1
ЧГПИ-Даймохк 1-3
Марта-Сунжа 2-1
05.11.12 22:58 anzor95 Правка ip inf 


</p>
<script>

a1=document.getElementsByTagName('p')[0].innerHTML; 

	
	b1=a1.split(/\sПравка\sip\sinf/); 
	for (var i=0;i<b1.length-1; i++) {
	
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
	
          // document.write(b1[i][1]);//НохчоФК Оргаanzor95undefined
	document.write(b1[0][1]);//НохчоНохчоНохчоНохчо
	//document.write(b1[1][1]);//ФК ОргаФК ОргаФК Орга
         //  document.write(b1[2][1]);//anzor95anzor95
}
  

</script>
</body>
</html>

skrudjmakdak 17.04.2013 10:46

в первом случае это ошибка в цикле. должно быть так
for (var i=0;i<b1.length-1; i++)

skrudjmakdak 17.04.2013 10:50

на счет второго.. вы же в цикле выводите одно и то же значение.. все разумно...
если вы хотите один раз вывести, то выводите за циклом (как то так):

var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);

console.log(b1[0][1]);

skrudjmakdak 17.04.2013 10:51

ну и третье и четвертое можно отнести ко 2-му пункту...

dima*** 17.04.2013 19:45

skrudjmakdak,понятно.Спасибо!

skrudjmakdak 18.04.2013 09:43

//прописывайте var. это говорит о инциализации переменной (первый раз когда используйте переменную). в данной проге ошибке не выдает, а вообще может.. так что не забывайте!!
//почитайте литературу про переменные и инициализацию

var p;
var a1 = document.getElementsByTagName('p')[0].innerHTML; 
var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	{
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
	console.log(b1[i][1]);
	//смотрите что хранится в b1[i][1], для лучшего понимания запишите в отдельную переменную
	p = b1[i][1];
	// при первом вхождении цикла i = 0. p = Нохчо
	// при втором вхождении цикла i = 1. p = ФК Орга
	// при третьем вхождении цикла i = 2. p = anzor95
	p = p.split(/\n/); //при первом вхождении цикла i = 0. p = Нохчо
	//вы пытайтесь разделить Нохчо. но внем нет \n поэтому вернет массив из одного элемента p[0] = 'Нохчо'; т.е. он его не разбил
	for (var k =0; k < p.length - 1; k++)
		console.log(p[k]);
	}

dima*** 18.04.2013 14:23

Спасибо за ответ.
Я плохой пример примёр с Нохчо.А вот,если так разделяю b1[i][0]=b1[i][0].split(/\n/);
for (var k =0;k<b1[i][0].length-1; k++) {
document.write(b1[1][0][1]+'<br>');получаются одни undefined вначале.Само значение b1[1][0][1] чему равно???

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>

<body>

<p style='display:none'>
• Самашки - Вайнах 1:4
Берд - Лидер 2:3
ЧГУ - Низам 1:2
Родник - Авангард 2:1
Тайфун - Динамо 0:2
Казбек-Горец 0:2
Спартак - Мартан 2:1
ЧГПИ - Даймохк 1:1
Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 

• Самашки-Вайнах 1:3
Берд-Лидер 0:2
ЧГУ-Низам 2:2
Родник-Авангард 1:2
Тайфун-Динамо 1:3
Казбек-Горец 0:4
Спартак-Мартан 0:0
ЧГПИ-Даймохк 1:5
Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 

• Самашки-Вайнах 1-1
Берд-Лидер 1-3
ЧГУ-Низам 1-2
Родник-Авангард 2-3
Тайфун-Динамо 1-3
Казбек-Горец 1-4
Спартак-Мартан 2-1
ЧГПИ-Даймохк 1-3
Марта-Сунжа 2-1
05.11.12 22:58 anzor95 Правка ip inf 


</p>
<script>

 var a1=document.getElementsByTagName('p')[0].innerHTML; 
a1= a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
	var b1=a1.split(/\sПравка\sip\sinf/); 
	for (var i=0;i<b1.length-1; i++) {
	
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
	
          // document.write(b1[i][1]);//НохчоФК Оргаanzor95
	//document.write(b1[0][1]);//НохчоНохчоНохчо
	//document.write(b1[1][1]);//ФК ОргаФК Орга
         //  document.write(b1[2][1]);//anzor95

b1[i][0]=b1[i][0].split(/\n/);
for (var k =0;k<b1[i][0].length-1; k++) {
document.write(b1[1][0][1]+'<br>');//undefined
                                                  undefined
                                                  undefined
                                                  undefined
                                                  undefined
                                                  undefined
                                                  undefined
                                                  undefined
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2
                                                  Берд-Лидер 0:2

}}
  

</script>
</body>
</html>

skrudjmakdak 18.04.2013 14:46

undefined - это когда обращайтесь к тому чего нет. обращение к не существующему объекту, переменной..
все дело в этой строчке: document.write(b1[1][0][1]+'<br>');
должно быть: b1[i][0][1], т.е. при первом цикле этого (b1[1][0][1]) элемента массива еще нет, т.к. i еще равен нулю, а вы обращайтесь уже к еденице.
при втором подходе уже существует этот элемент (b1[1][0][1]) т.к. i = 1 и обращение идет к 1 элементу массива
ну и при третьем подходе также есть элемент массива b1[1][0][1]



вот посмотрите, я немного исправил:

var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	{
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/); 
		//i = 0 ["• Самашки - Вайнах 1:4↵Берд - Лидер 2:3↵ЧГУ - Низа… Мартан 2:1↵ЧГПИ - Даймохк 1:1↵Марта - Сунжа 2:1 ", "Нохчо"]
		//i = 1 ["• Самашки-Вайнах 1:3↵Берд-Лидер 0:2↵ЧГУ-Низам 2:2↵…ртак-Мартан 0:0↵ЧГПИ-Даймохк 1:5↵Марта-Сунжа 1:2 ", "ФК Орга"]
		//i = 2 ["• Самашки-Вайнах 1-1↵Берд-Лидер 1-3↵ЧГУ-Низам 1-2↵…ртак-Мартан 2-1↵ЧГПИ-Даймохк 1-3↵Марта-Сунжа 2-1↵", "anzor95"]
	b1[i][0]=b1[i][0].split(/\n/);
	/*
	i = 0, b1[i][0]=
	0: "• Самашки - Вайнах 1:4"
	1: "Берд - Лидер 2:3"
	2: "ЧГУ - Низам 1:2"
	3: "Родник - Авангард 2:1"
	4: "Тайфун - Динамо 0:2"
	5: "Казбек-Горец 0:2"
	6: "Спартак - Мартан 2:1"
	7: "ЧГПИ - Даймохк 1:1"
	8: "Марта - Сунжа 2:1 "
	
	i = 1, b1[i][0]=
	0: "• Самашки-Вайнах 1:3"
	1: "Берд-Лидер 0:2"
	2: "ЧГУ-Низам 2:2"
	3: "Родник-Авангард 1:2"
	4: "Тайфун-Динамо 1:3"
	5: "Казбек-Горец 0:4"
	6: "Спартак-Мартан 0:0"
	7: "ЧГПИ-Даймохк 1:5"
	8: "Марта-Сунжа 1:2 "
	...
	*/
	console.log('i = ' + i + '  ----------------');
	for (var k =0; k < b1[i][0].length - 1; k++)
		console.log(b1[i][0][k]);
	}

dima*** 18.04.2013 19:43

Спасибо большое!Так-то понятно становится,что циклы нужно не везде ставить.

Почему-то не работает?Вроде,так перенёс...И в Adobe Dreamweaver не работает...
skrudjmakdak-помогите допонять,пожалуйста.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Документ без названия</title>
	</head>
	
            <body>
	<p style='display:none'>
	• Самашки - Вайнах 1:4
	Берд - Лидер 2:3
	ЧГУ - Низам 1:2
	Родник - Авангард 2:1
	Тайфун - Динамо 0:2
	Казбек-Горец 0:2
	Спартак - Мартан 2:1
	ЧГПИ - Даймохк 1:1
	Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 
	 
	• Самашки-Вайнах 1:3
	Берд-Лидер 0:2
	ЧГУ-Низам 2:2
	Родник-Авангард 1:2
	Тайфун-Динамо 1:3
           Казбек-Горец 0:4
	Спартак-Мартан 0:0
	ЧГПИ-Даймохк 1:5
           Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 
	 
	• Самашки-Вайнах 1-1
	Берд-Лидер 1-3
	ЧГУ-Низам 1-2
	Родник-Авангард 2-3
	Тайфун-Динамо 1-3
	Казбек-Горец 1-4
	Спартак-Мартан 2-1
	ЧГПИ-Даймохк 1-3
	Марта-Сунжа 2-1
	05.11.12 22:58 anzor95 Правка ip inf 
	 
	</p>
	
<script>
    var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	{
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/); 
		//i = 0 ["• Самашки - Вайнах 1:4↵Берд - Лидер 2:3↵ЧГУ - Низа… Мартан 2:1↵ЧГПИ - Даймохк 1:1↵Марта
- Сунжа 2:1 ", "Нохчо"]
		//i = 1 ["• Самашки-Вайнах 1:3↵Берд-Лидер 0:2↵ЧГУ-Низам 2:2↵…ртак-Мартан 0:0↵ЧГПИ-Даймохк 1:5↵Марта-Сунжа 1:2 ", "ФК Орга"]
		//i = 2 ["• Самашки-Вайнах 1-1↵Берд-Лидер 1-3↵ЧГУ-Низам 1-2↵…ртак-Мартан 2-1↵ЧГПИ-Даймохк 1-3↵Марта-Сунжа 2-1↵", "anzor95"]
	b1[i][0]=b1[i][0].split(/\n/);
	/*
	i = 0, b1[i][0]=
	0: "• Самашки - Вайнах 1:4"
	1: "Берд - Лидер 2:3"
	2: "ЧГУ - Низам 1:2"
	3: "Родник - Авангард 2:1"
	4: "Тайфун - Динамо 0:2"
	5: "Казбек-Горец 0:2"
	6: "Спартак - Мартан 2:1"
	7: "ЧГПИ - Даймохк 1:1"
	8: "Марта - Сунжа 2:1 "
	
	i = 1, b1[i][0]=
	0: "• Самашки-Вайнах 1:3"
	1: "Берд-Лидер 0:2"
	2: "ЧГУ-Низам 2:2"
	3: "Родник-Авангард 1:2"
	4: "Тайфун-Динамо 1:3"
	5: "Казбек-Горец 0:4"
	6: "Спартак-Мартан 0:0"
	7: "ЧГПИ-Даймохк 1:5"
	8: "Марта-Сунжа 1:2 "
	...
	*/
	console.log('i = ' + i + '  ----------------');
	for (var k =0; k < b1[i][0].length - 1; k++)
		console.log(b1[i][0][k]);
	} 
</script>
</body>
</html>

skrudjmakdak 18.04.2013 22:38

1. я тоже когда то пытался работать через Adobe Dreamweaver. потом понял что это фигня.. поэтому и вам советую.. выкиньте (может и привыкли, но все же..)

2. Лучше использовать netbeans или notepad. первый для серьезных проектов, а нотепад для "домашних". на работе мы пишем в нетбинсе.. а дома мне за глаза нотепада хватает... (это так, лично мое мнение.. выбор конечно же завами)

3. Выбор самого браузера (тоже немаловажно).. мне нравится хром (опять таки мое личное мнение). в хроме есть встроенный фаербаг. вызывается f12.. там есть консоль (вкладка console), куда все можно выводить для отладки.. для вывода используется console.log(здесь пишем имя переменной); также при возникновении ошибки в консоль выводится сообщение об ошибки и НОМЕР СТРОЧКИ где эта ошибка произошла.. таким образом можно найти причину этой ошибки, щелкнув по самой ошибки..

ну собсенно сам код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Документ без названия</title>
	</head>
	
            <body>
	<p style='display:none'>
	• Самашки - Вайнах 1:4
	Берд - Лидер 2:3
	ЧГУ - Низам 1:2
	Родник - Авангард 2:1
	Тайфун - Динамо 0:2
	Казбек-Горец 0:2
	Спартак - Мартан 2:1
	ЧГПИ - Даймохк 1:1
	Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 
	 
	• Самашки-Вайнах 1:3
	Берд-Лидер 0:2
	ЧГУ-Низам 2:2
	Родник-Авангард 1:2
	Тайфун-Динамо 1:3
           Казбек-Горец 0:4
	Спартак-Мартан 0:0
	ЧГПИ-Даймохк 1:5
           Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 
	 
	• Самашки-Вайнах 1-1
	Берд-Лидер 1-3
	ЧГУ-Низам 1-2
	Родник-Авангард 2-3
	Тайфун-Динамо 1-3
	Казбек-Горец 1-4
	Спартак-Мартан 2-1
	ЧГПИ-Даймохк 1-3
	Марта-Сунжа 2-1
	05.11.12 22:58 anzor95 Правка ip inf 
	 
	</p>
	
<script>
    var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	{
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/); 
	b1[i][0]=b1[i][0].split(/\n/);
	
	console.log('i = ' + i + '  ----------------');
	for (var k =0; k < b1[i][0].length - 1; k++)
		console.log(b1[i][0][k]);
	} 
</script>
</body>
</html>



p.s. если что спрашивайте. я таким же был)))

dima*** 19.04.2013 09:14

Спасибо за совет,насчёт, редакторов.Давно хотел перейти с Adobe Dreamweaver ,просто не знал на какой.

А код почему-то не работает?:(
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Документ без названия</title>
	</head>
	
            <body>
	<p style='display:none'>
	• Самашки - Вайнах 1:4
	Берд - Лидер 2:3
	ЧГУ - Низам 1:2
	Родник - Авангард 2:1
	Тайфун - Динамо 0:2
	Казбек-Горец 0:2
	Спартак - Мартан 2:1
	ЧГПИ - Даймохк 1:1
	Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 
	 
	• Самашки-Вайнах 1:3
	Берд-Лидер 0:2
	ЧГУ-Низам 2:2
	Родник-Авангард 1:2
	Тайфун-Динамо 1:3
           Казбек-Горец 0:4
	Спартак-Мартан 0:0
	ЧГПИ-Даймохк 1:5
           Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 
	 
	• Самашки-Вайнах 1-1
	Берд-Лидер 1-3
	ЧГУ-Низам 1-2
	Родник-Авангард 2-3
	Тайфун-Динамо 1-3
	Казбек-Горец 1-4
	Спартак-Мартан 2-1
	ЧГПИ-Даймохк 1-3
	Марта-Сунжа 2-1
	05.11.12 22:58 anzor95 Правка ip inf 
	 
	</p>
	
<script>
    var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
var b1=a1.split(/\sПравка\sip\sinf/); 
for (var i=0;i<b1.length-1; i++)
	{
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/); 
	b1[i][0]=b1[i][0].split(/\n/);
	
	//console.log('i = ' + i + '  ----------------');
	for (var k =0; k < b1[i][0].length - 1; k++){
		
	
        b1[i][0][k] = b1[i][0][k].match(rega);
	        if (b1[i][0][k] != null)
	            {
	            //document.write(b1[i][0][k].join(','));
	            }
	        }

} 
</script>
</body>
</html>

skrudjmakdak 19.04.2013 11:45

как не работает?? работает!! ответ в КОНСОЛЬ выводит.
в каком браузере запускайте?

dima*** 19.04.2013 13:51

Так,здесь смотрю.Кнопка "Посмотреть" перед <!DOCTYPE html PUBLIC "...

skrudjmakdak 19.04.2013 14:10

пройдите по этой ссылке:
http://oom-foto.ru/files/example.html

нажмите f12 (откроется фаебаг) там будет вкладка консоль (у каждых браузеров по разному). откройте эту вкладку (консоль). там должен высветится ответ

какой у вас браузер???

dima*** 19.04.2013 14:23

Всё,спасибо огромное разобрался!!!
Здесь тоже можно смотреть.Нужно console.log заменить на document.write и всё работает!!!

А ещё не поможите?
Теперь нужно,что получили разделить ,так чтобы остались только числа и текст.
Примерно,вот так:

rega=/\d|[А-Яа-я]+/ig;
b1[i][0][k]=b1[i][0][k].match(rega);
for(l=0;l<b1[i][0][k].length;l++){
	document.write(b1[i][0][k]+'<br>');
}}


Так у меня получиться?

Должно получиться:
Самашки,Вайнах,1,4
Берд,Лидер,2,3
ЧГУ,Низам,1,2
и т.д.

dima*** 19.04.2013 14:27

Т.е. нужно убрать for (var k =0; k < b1[i][0].length - 1; k++) ,а в конце добавить for (var l =0; l < b1[i][0][k].length - 1; l++) .Я правильно думаю?

skrudjmakdak 19.04.2013 18:43

вот так наверное будет правильней:
var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
var rega = /\d|[А-Яа-я]+/ig;

var b1 = a1.split(/\sПравка\sip\sinf/); 
if (typeof b1[b1.length - 1] != 'object')
	b1.splice(b1.length - 1, 1);

for (var i = 0; i < b1.length; i++)
	{
	b1[i] = b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
	//тут бы желательно удалить \n до текста и после
	b1[i][0] = b1[i][0].split(/\n/);
	for (var k = 0; k < b1[i][0].length; k++)
		{
		b1[i][0][k] = b1[i][0][k].match(rega);
		if (b1[i][0][k] != null)
			{
			b1[i][0][k] = b1[i][0][k].join(',');
			console.log(b1[i][0][k]);
			}
		}
	}

skrudjmakdak 19.04.2013 18:49

по поводу консолей:
>>>Здесь тоже можно смотреть.Нужно console.log заменить на document.write и всё работает!!!

лучше пользуйтесь консолем. очень удобная штука для отладки, поиска ошибок. кстати, прям в консоль можно вбивать js код, он понимает..

dima*** 19.04.2013 19:56

Спасибо,огромное за помощь.
Я изучаю яваскрипт самостоятельно по "Самоучителю Дунаева" ,там console.log нет,а используется document.write.Наверное,материал устарел.Но,сейчас,главное ,чтобы пришло понимание,а заменить document.write на console.log не такая большая проблема...Теперь буду разбираться со всем написанным.
Если будут вопросы,надеюсь,не откажете в помощи?

dima*** 19.04.2013 20:33

Вот не понятно?

var b1 = a1.split(/\sПравка\sip\sinf/);
if (typeof b1[b1.length - 1] != 'object')
b1.splice(b1.length - 1, 1);

Получается,если последний элемент в b1 не объект,то его удаляем?

Наверное,не так....:no:

skrudjmakdak 19.04.2013 20:36

та без проблем, пишите..
а что на счет document.write, то я за свою жизнь его не разу не использовал

а что насчет консоли, то вот пример небольшой:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
var m = new Object();
m.property1 = 1;
m.property2 = 2;
m.method1 = function()
	{
	return m.property1 + m.property2;
	}
document.write(m);
console.log(m);
</script>
	</head>
	<body>
	</body>
</html>

если вывести m через document.write то на экран выскочит [object Object]
а если вывести через консоль console.log, то выведет объект и его свойства и методы
вот наглядный скрин:

skrudjmakdak 19.04.2013 20:38

вы писали:
>>> Получается,если последний элемент в b1 не объект,то его удаляем?

именно так, если не объект, то удаляем.. иначе ошибка будет в цикле

dima*** 19.04.2013 21:02

С консолью-это на воскресенье.Нужна,свежая голова,чтобы в это влазить...

>>>именно так, если не объект, то удаляем.. иначе ошибка будет в цикле
Ага.Значит splice можно и так использовать...Не знал.

dima*** 20.04.2013 09:36

Так все выходят через запятую...Не совсем то,что нужно.
Вообщем,нужно массив массивов:
arr=[[[Самашки,Вайнах,1,4][Берд,Лидер,2,3]...[Марта,Сунжа,2,1]]
[[Самашки,Вайнах,1,3][Берд,Лидер,0,2]...[Марта,Сунжа,1,2]]
[[Самашки,Вайнах,1,1][Берд,Лидер,1,3]...[Марта,Сунжа,2,1]]].
Только,желательно,по тому пути по какому мы идём...

skrudjmakdak 20.04.2013 19:48

if (b1[i][0][k] != null)
   {
   console.log(b1[i][0][k].join(','));
   }

skrudjmakdak 20.04.2013 19:53

var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
var rega = /\d|[А-Яа-я]+/ig;

var b1 = a1.split(/\sПравка\sip\sinf/); 
if (typeof b1[b1.length - 1] != 'object')
	b1.splice(b1.length - 1, 1);

for (var i = 0; i < b1.length; i++)
	{
	b1[i] = b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
	//тут бы желательно удалить \n до текста и после
	b1[i][0] = b1[i][0].split(/\n/);
	for (var k = 0; k < b1[i][0].length; k++)
		{
		b1[i][0][k] = b1[i][0][k].match(rega);
		if (b1[i][0][k] != null)
			{
			//console.log(b1[i][0][k].join(','));
			}
		}
	}
console.log(b1);

dima*** 20.04.2013 21:02

console.log(b1)-Вон,даже,как!!!Вот,чего месяц не мог понять!!!
Завтра,выходной,наконец-то.Посижу все,записи просмотрю,проделаю.А,то или в обед на полчаса прибегаешь,то после работы-голова уже не соображает.
Спасибо,большое!!!!!
В циклах понятно становится, что к чему.А то везде,for(i=0;i<"что-то".length;i++) и всё!Ну,ещё пару раз j видел.
А,если,после каждого цикла splice(массив.length - 1, 1) использовать и новый массив создавать(hewArr.splice)?

skrudjmakdak 20.04.2013 22:28

ну вообще то методом splice особо не добавляют элементы (по крайней мере я такого не встречал, да и сам не писал). это если надо удалить и тут же добавить причем в тот же массив, тогда да.

>>>А,если,после каждого цикла splice(массив.length - 1, 1) использовать и новый массив создавать(hewArr.splice)?

ну что то на подобии такого примера:

var array = [330, 515, 354, 768, 543, 654];
var newArray = new Array();
var a = undefined;
console.log(newArray);
while(array.length != 0)
	{
	a = array.splice(0, 1)[0];
	console.log(a);
	newArray.push(a);
	}
console.log(newArray);


здесь есть два массива, один полный другой пустой, ну и переменная.. она так, для того чтобы было понятно что в ней храним (конечно можно сделать одной строчкой: newArray.push(array.splice(0, 1)[0])).

вообщем гоним цикл, до тех пор пока массив не опустеет (array.length != 0), там удаляем элемент массива и записываем в переменную. потом выводим содержимое этой переменной.. ну и добавляем значение в новый массив.. и в конце выводим содержимое нового массива.

dima*** 21.04.2013 17:04

Почему-то не работает.В конце что-то неправильно.

<script>
   var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
var b1=a1.split(/\sПравка\sip\sinf/); 
if (typeof b1[b1.length - 1] != 'object')
b1.splice(b1.length - 1, 1);

for (var i=0;i<b1.length-1; i++){

	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/); 
	
	b1[i][0]=b1[i][0].split(/\n/);

	for (var k =0; k < b1[i][0].length; k++){

var rega = /\d|[А-Яа-я]+/ig;
 b1[i][0][k]=b1[i][0][k].match(rega);
if (b1[i][0][k] != null){

b1[i][0][k]=b1[i][0][k].split(',');
for (var l =0; l< b1[i][0][k].length ;i++){
console.log(b1[i][0][k][l]+'<br>');
}}}}

</script>
</body>
</html>

dima*** 21.04.2013 20:40

Разложил всё по полочкам-не работает и всё!!!Что делаю не так?:help:

a1=document.getElementsByTagName('p')[0].innerHTML; 
a1= a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n')	
//a1 = a1.replace(/(\r\n|\n|\r)/gm," ");

	
	
	b1=a1.split(/\sПравка\sip\sinf/); 
	for (var i=0;i<b1.length-1; i++) {
	
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
	
	
 var p=b1[i][0].split(/\n/);
 for(k=0;k<p.length;k++){
  
  rega=/\d|[А-Яа-я]+/ig;
   h=p[k].match(rega);
  var m=[];
  for(l=0;l<h.match;l++){
	  m[l]=m[l].split(',');
	  console.log(m[l]+'<br>');
  }}}

skrudjmakdak 21.04.2013 21:09

в первом случае (коменты прям в коде):

<script>
var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
	
var b1=a1.split(/\sПравка\sip\sinf/); 
if (typeof b1[b1.length - 1] != 'object')
b1.splice(b1.length - 1, 1);

for (var i=0;i<b1.length-1; i++){

	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/); 
	
	b1[i][0]=b1[i][0].split(/\n/);

	for (var k =0; k < b1[i][0].length; k++){

var rega = /\d|[А-Яа-я]+/ig;
 b1[i][0][k]=b1[i][0][k].match(rega);
if (b1[i][0][k] != null){

//b1[i][0][k]=b1[i][0][k].split(','); зачем эта строчка?? она здесь вообще не нужна!!
for (var l =0; l< b1[i][0][k].length ;i++){ //цикл. почему i++ ??? если по циклу гоним l, то и цикл должен быть for (var l =0; l< b1[i][0][k].length ;l++)
console.log(b1[i][0][k][l]+'<br>');
}}}}

skrudjmakdak 21.04.2013 21:13

вторую сильно не смотрел, я сейчас занят.. но так в глаза кинулось следующее:
a1=document.getElementsByTagName('p')[0].innerHTML; 
a1= a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n')	
//a1 = a1.replace(/(\r\n|\n|\r)/gm," ");

	
	
	b1=a1.split(/\sПравка\sip\sinf/); 
	for (var i=0;i<b1.length-1; i++) {
	
	b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
	
	
 var p=b1[i][0].split(/\n/);
 for(k=0;k<p.length;k++){
  
  rega=/\d|[А-Яа-я]+/ig;
   h=p[k].match(rega);
  var m=[];
  for(l=0;l<h.match;l++){//for(l=0;l<h.match;l++) .. что за h.match  ????
	  m[l]=m[l].split(','); //что это?? не нужно!! метод сплит есть у строки, но не у массива!!
	  console.log(m[l]+'<br>');
  }}}

skrudjmakdak 21.04.2013 21:18

когда возникает ошибка то в консоль пишется что за ошибка (правда на английском, если с англ туго можете транслитом переводить) и на какой строчке

dima*** 21.04.2013 21:28

Блин,целый день просидел.Опять не так...:cray: Какой-то кошмар!Ладно,на сегодня сдаюсь.:-/
Спасибо за подсказки...

dima*** 21.04.2013 21:31

Пробывал с консолью в опере,что-то не очень понятно...

skrudjmakdak 22.04.2013 08:45

в опере так (вроде): правой кнопкой мыши по странице->проинспектировать элемент. должен внизу появится фаербаг

dima*** 22.04.2013 08:52

Получилось!!!!!!!!!!!!!Спасибо большое!!!!!!!!
Теперь,ещё нужно к этому авторов добавить(b[i][1]).
Это как лучше сделать?С помощью объектов?

skrudjmakdak 22.04.2013 08:55

вот скрин:

dima*** 22.04.2013 08:59

Да,так я открывал.А как пользоваться я не знаю.

skrudjmakdak 22.04.2013 09:02

>>> Теперь,ещё нужно к этому авторов добавить(b[i][1]).
>>> Это как лучше сделать?С помощью объектов?

ну если массивом уже идет, то пусть массивом и будет. можно конечно и объектом..

добавить элемент в конец массива просто array.push('Иванов');


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