PDA

Просмотр полной версии : глюк с заполнением и доступом к Array


Linuxoid_Alex
11.08.2004, 09:32
Люди, подскажите,plz, почему эта хрень не работает:
Пишу:

values = [[],[]];
doc = new XML();
doc.load("data.xml");
doc.ignoreWhite =true;

дальше в цикле:

doc.onLoad = function()
{
for (i=0;i<doc.firstChild.childNodes.length;i++)
{
for (j=0;j<doc.firstChild.childNodes[i].childNodes.length;j++)
{
if ((doc.firstChild.childNodes[i].childNodes[j].attributes.value)!=undefiend)
{
this.values[i][j] = Number(doc.firstChild.childNodes[i].childNodes[j].attributes.value);
}
}
}
}

заполняется тока 0 и 1, а если делаю values=[[],[]];

this.values[i,j]=...

то работает, почму?

DeliMIter
11.08.2004, 12:39
Смотря что называть словом "работает". array[i,j] не есть валидная индексация двумерного массива и она равносильна array[i].

Далее, ты создаешь массив только из двух массивов. Индекс [2] уже вернет undefined. Т.е.values = new Array();
doc = new XML();
doc.load("data.xml");
doc.ignoreWhite =true;

doc.onLoad = function()
{
for (i=0;i<doc.firstChild.childNodes.length;i++)
{
values[i] = new Array();
for (j=0;j<doc.firstChild.childNodes[i].childNodes.length;j++)
{
if ((doc.firstChild.childNodes[i].childNodes[j].attributes.value)!=undefiend)
{
this.values[i][j] = Number(doc.firstChild.childNodes[i].childNodes[j].attributes.value);
}
}
}
}