Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   не могу задать новый элемент массива (https://javascript.ru/forum/events/50767-ne-mogu-zadat-novyjj-ehlement-massiva.html)

REMOX 10.10.2014 14:01

не могу задать новый элемент массива
 
Доброго времени суток!

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

var divdeffo=rez[0].split('-');
var divdeffc=divdeffo.length;
var rezdmin = new Array();
var rezdfpl = new Array();
							
for(i=0;i<divdeffc;i++){
var divrezhide5=document.getElementsByClassName(divdeffo[i])[0].getElementsByClassName("rez")[0].style="display: none;";
var divrezhide6=document.getElementsByClassName(divdeffo[i])[0].getElementsByClassName("rez")[1].style="display: none;";
								
var ddff=divdeffo[i];
var n = i+3;
var armrez=rez[n].split('-');
alert("755");
rezdmin[i][0]=ddff;
rezdmin[i][1]=window['defarm_'+ddff+"1"]-armrez[0];
rezdmin[i][2]=window['defarm_'+ddff+"2"]-armrez[1];
rezdmin[i][3]=window['defarm_'+ddff+"3"]-armrez[2];
rezdmin[i][4]=window['defarm_'+ddff+"4"]-armrez[3];
rezdmin[i][5]=window['defarm_'+ddff+"5"]-armrez[4];
rezdmin[i][6]=window['defarm_'+ddff+"6"]-armrez[5];
rezdmin[i][7]=window['defarm_'+ddff+"7"]-armrez[6];
rezdmin[i][8]=window['defarm_'+ddff+"8"]-armrez[7];
rezdmin[i][9]=window['defarm_'+ddff+"9"]-armrez[8];
rezdmin[i][10]=window['defarm_'+ddff+"10"]-armrez[9];
rezdmin[i][11]=window['defarm_'+ddff+"11"]-armrez[10];
alert("745");
rezdpl[i][0]=ddff;
rezdpl[i][1]=armrez[0];
rezdpl[i][2]=armrez[1];
rezdpl[i][3]=armrez[2];
rezdpl[i][4]=armrez[3];
rezdpl[i][5]=armrez[4];
rezdpl[i][6]=armrez[5];
rezdpl[i][7]=armrez[6];
rezdpl[i][8]=armrez[7];
rezdpl[i][9]=armrez[8];
rezdpl[i][10]=armrez[9];
rezdpl[i][11]=armrez[10];
alert("765");
}

в браузере такое-
http://shot.qip.ru/00bDte-515iw6PH2g/
http://shot.qip.ru/00bDte-515iw6PH2h/

не могу понять, в чем проблема,,
почему TypeError: rezdmin[] is undefined ?
спасибо наперед)

danik.js 10.10.2014 14:09

да ты удали дублирующийся код для начала.

REMOX 10.10.2014 14:24

Цитата:

Сообщение от danik.js (Сообщение 334627)
да ты удали дублирующийся код для начала.

извините, а где там дубли? О_о

danik.js 10.10.2014 14:28

Дык в глазах рябит от дублирующихся строк. Тебе и правда нужно поспать)

REMOX 10.10.2014 14:36

Цитата:

Сообщение от danik.js (Сообщение 334630)
Дык в глазах рябит от дублирующихся строк. Тебе и правда нужно поспать)

где?
вот есть же люди - вместо того, чтобы за 3 секунды подсказать -
будут днями издеваться и не подскажут...
спасибо и таким людям))

REMOX 10.10.2014 15:56

изменил

Код:

var rezdmin = new Array();
var rezdpl = new Array();

на

Код:

var rezdmin = new Array( Array() );
var rezdpl = new Array( Array() );

по совету друга, теперь 1й записывается, а 2й - нет, хотя по образу и подобию... в чем проблем??

Код:

rezdmin[i][0]=ddff;
rezdmin[i][1]=window['defarm_'+ddff+"1"]-armrez[0];
rezdmin[i][2]=window['defarm_'+ddff+"2"]-armrez[1];
rezdmin[i][3]=window['defarm_'+ddff+"3"]-armrez[2];
rezdmin[i][4]=window['defarm_'+ddff+"4"]-armrez[3];
rezdmin[i][5]=window['defarm_'+ddff+"5"]-armrez[4];
rezdmin[i][6]=window['defarm_'+ddff+"6"]-armrez[5];
rezdmin[i][7]=window['defarm_'+ddff+"7"]-armrez[6];
rezdmin[i][8]=window['defarm_'+ddff+"8"]-armrez[7];
rezdmin[i][9]=window['defarm_'+ddff+"9"]-armrez[8];
rezdmin[i][10]=window['defarm_'+ddff+"10"]-armrez[9];
rezdmin[i][11]=window['defarm_'+ddff+"11"]-armrez[10];
alert("745");
rezdpl[i][0]=ddff;
rezdpl[i][1]=armrez[0];
rezdpl[i][2]=armrez[1];
rezdpl[i][3]=armrez[2];
rezdpl[i][4]=armrez[3];
rezdpl[i][5]=armrez[4];
rezdpl[i][6]=armrez[5];
rezdpl[i][7]=armrez[6];
rezdpl[i][8]=armrez[7];
rezdpl[i][9]=armrez[8];
rezdpl[i][10]=armrez[9];
rezdpl[i][11]=armrez[10];


danik.js 10.10.2014 16:08

Ты не захотел потратить пары минут, на то чтобы привести код в порядок.
Почему кто-то должен тратить свое время чтобы разобраться в этих грядках?

REMOX 10.10.2014 16:28

Цитата:

Сообщение от danik.js (Сообщение 334668)
Ты не захотел потратить пары минут, на то чтобы привести код в порядок.
Почему кто-то должен тратить свое время чтобы разобраться в этих грядках?

что значит "привести код в порядок"?

вот так?

Код:

var divdeffo=rez[0].split('-');
var divdeffc=divdeffo.length;
var rezdmin = new Array( new Array() );
var rezdpl = new Array( new Array() );

for(i=0;i<divdeffc;i++){
var divrezhide5=document.getElementsByClassName(divdeffo[i])[0].getElementsByClassName("rez")[0].style="display: none;";
var divrezhide6=document.getElementsByClassName(divdeffo[i])[0].getElementsByClassName("rez")[1].style="display: none;";

var ddff=divdeffo[i];
var n = i+3;
var armrez=rez[n].split('-');

rezdmin[i][0]=ddff;
rezdpl[i][0]=ddff;
for (var kk=1;kk<=11;kk++){
var ll=kk-1;
rezdmin[i][kk]=window['defarm_'+ddff+kk]-armrez[ll];
rezdpl[i][kk]=armrez[ll];
}

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

danik.js 10.10.2014 17:05

А че вобще за задача стоит? Код все равно не читаемый, ибо имена переменных обфусцированы. Пожалуйста, не пости здесь офусцированный код. Пости исходник.

Safort 10.10.2014 17:29

REMOX,
Цитата:

что значит "привести код в порядок"?
Отформатировать, логичнее назвать имена переменных, убрать дублирование.

Не понимаю, зачем ты пишешь так
var rezdmin = new Array( new Array() );
var rezdpl = new Array( new Array() );

если можно так
var rezdmin = [[]];
var rezdpl = [[]];


Ну и тут тоже можно по короче
var divrezhide5=document.getElementsByClassName(divdeffo[i])[0].getElementsByClassName("rez")[0].style="display: none;";
var divrezhide6=document.getElementsByClassName(divdeffo[i])[0].getElementsByClassName("rez")[1].style="display: none;";

Например, так
var rezes = document.getElementsByClassName(divdeffo[i])[0].getElementsByClassName("rez");
var divrezhide5=rezes[0].style="display: none";
var divrezhide6=rezes[1].style="display: none";

REMOX 10.10.2014 17:35

Цитата:

Сообщение от danik.js (Сообщение 334683)
А че вобще за задача стоит? Код все равно не читаемый, ибо имена переменных обфусцированы. Пожалуйста, не пости здесь офусцированный код. Пости исходник.

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

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

А "А че вобще за задача стоит?"=== написано в теме))
так вы не только любитель попинать почем зря, вы еще и невнимательный ;)

получилось вот так:
Код:

var divdeffo=rez[0].split('-');
var divdeffc=divdeffo.length;
var rezdmin = [];
var rezdpl = [];
for(i=0;i<divdeffc;i++){
var divrezhide5=document.getElementsByClassName(divdeffo[i])[0].getElementsByClassName("rez")[0].style="display: none;";
var divrezhide6=document.getElementsByClassName(divdeffo[i])[0].getElementsByClassName("rez")[1].style="display: none;";

var ddff=divdeffo[i];
var n = i+3;
var armrez=rez[n].split('-');

var l=0;
rezdmin[i] = [];
rezdpl[i] = [];
for (var t = 0; t <= 11; t++){
l=t-1;
if(t==0){
rezdmin[i][0]=ddff;
rezdpl[i][0]=ddff;
}else{
rezdmin[i][t]=window['defarm_'+ddff+t]-armrez[l];
rezdpl[i][t]=armrez[l];
}
}}

спасибо еще раз :dance: и пускай вы не мучаетесь так долго, как я))

danik.js 10.10.2014 17:49

Цитата:

Сообщение от REMOX
так вы не только любитель попинать почем зря, вы еще и невнимательный

Ты не описывал задачу. Че делает этот код - загадка. Хотя обычно по коду (нормальному) ясно что он делает.
Цитата:

Сообщение от REMOX
пускай вы не мучаетесь так долго, как я))

Если бы с самого начала писал нормальный код, то и ошибку бы быстрей нашел, или подсказали.

А вобще, наверняка твою задачу можно решить в три-четыре простых строчки.

REMOX 10.10.2014 18:13

Цитата:

Сообщение от danik.js (Сообщение 334695)
Ты не описывал задачу. Че делает этот код - загадка. Хотя обычно по коду (нормальному) ясно что он делает.
Если бы с самого начала писал нормальный код, то и ошибку бы быстрей нашел, или подсказали.

А вобще, наверняка твою задачу можно решить в три-четыре простых строчки.

в теме четко пишет "задать новый элемент массива"))
термин "нормальный" подразумевает под собой "такой, как большинство",,
применимо к коду - "нормальный" - лично я понимаю как "работающий",,
можно еще разделять на "оптимизированно работающый" и "сяк-так работающый"))
(первое - кто пишет на чистом js, второе - кто пишет на jQuery и других костилях, которые в своем большинстве дают лишний вес кода и нагрузку на проц)

насчет вашего последнего - это- вряд ли))
я, понимаете ли, не решаю задачки со школы, как вы, возможно, подумали, нет, я пишу один свой проэкт))

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

kostyanet 11.10.2014 20:07

ТС, на эту борду постите свой нормальный код - http://govnokod.ru/

danik.js 11.10.2014 20:17

Цитата:

Сообщение от REMOX
в теме четко пишет "задать новый элемент массива"))

Хе. Представляю прям картину: приходит с утра менеджер и говорит: "На сегодня у тебя задача - задать новый элемент массива". И уходит.

kostyanet 11.10.2014 20:21

Цитата:

Сообщение от REMOX
применимо к коду - "нормальный" - лично я понимаю как "работающий",,

Следовательно и по-вашему этот код не нормальный, потому что не работающий. Или вы уж задали новый элемент массива героически?

kostyanet 11.10.2014 20:23

А, я понял, он работающий, но не совсем, где-то чуть-чуть не работает, а в целом - работающий, но где-то не работает, где - хз, надо на форуме спросить... Это как в том анекдота: зарплата маленькая - но хорошая.


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