Autor Zpráva
Chodec
Profil
Dá se nějak zjistit skutečný počet položek v poli. V těchto příkladech mám vždy definováno nové pole. Potom do něj uložím 3 položky. Ale při výpisu počtu položek mě to pokud je tam aspoň 1 číselný index vyhodí vždy max index +1 a když tam mám jen řetězcové indexy tam je to vždy 0.

var pole = new Array ();
pole[0] = 0;
pole[1] = 1;
pole[2] = 2;
document.write (pole.length);


vypíše 3

var pole = new Array ();
pole[0] = 0;
pole[1] = 1;
pole[10] = 10;
document.write (pole.length);


vypíše 11

var pole = new Array ();
pole["a"] = 0;
pole["b"] = 1;
pole["c"] = 2;
document.write (pole.length);


vypíše 0
Měsíček
Profil
Reaguji na Chodce:

Cituji: "In the above example, associativeArray.length will be zero because we didn't actually put anything into the Array, we put it into associativeArray's object. "associativeArray[0]" will be undefined. " viz zdroj (Tato citace se váže k jednomu příkladu velice podobnému jako jsi napsal ty, .. (je asi v první čtvrtině celé stránky)).

http://www.hunlock.com/blogs/Mastering_Javascript_Arrays
Chamurappi
Profil
Reaguji na Chodce:
Viz má reakce vedle, asociativní pole v JavaScriptu neexistuje. K jakémukoliv objektu (včetně instancí Array) můžeš beztrestně přidat jakoukoliv vlastnost. Zápisy „pole["a"]“ a „pole.a“ jsou ekvivalentní. Vlastnost length u třídy Array kouká jen na své číselné indexy.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: