

Přídávání a odebirani prvku pole JavaScript
[js]// chci vytvorit dvourozmerne pole
var hodnoty = [ [0, 0] ] ; // timto vytvorim dvourozmerne pole
function refreshTable ()
{
// dvojice [x, y]
hodnoty[1][0] = 20; // Toto si nemuzu dovolit - nefunguje !
hodnoty[1][1] = -3.78; // Toto si nemuzu dovolit - nefunguje !
alert(hodnoty[1][0]); // Undefined !
// nyni chci hodnoty do pole pridavat
hodnoty.splice(1,0,[20],[30]); // Prida do pole 1 prvek 20 , ale uz ne tricet.
}
Ackoliv svuj dotaz asi formuluji slozite je jednoduchy:
Jak pridavat do pole o neurcite delce dvojici prvku o nejake hodnote ?
Jak tyto prvky odebirat a jak pridavat ?
To jsou prece zakladni operace s polem. Tak jaka je syntaxe ???
[/js]
To tady není nekdo tak dobry jako los ?
Jako los? Nemožné.
Mám to !
Přišel jsem na to na základě odpovědi losa na jeden můj předchozí programátorský dotaz.
Takže nepřímo je to jeho zásluha
[js]hodnoty // Datova struktura - pole o promenne velikosti, neurcite
function gumujPosledni() // Funkce zlikviduje posledni hodnotu dvourozměrného pole
{
delkaPoleHodnot = hodnoty.length; // Zjistí délku pole
delkaPoleHodnot--; // Pamatuj !!! Pole zacina indexem 0 lenght zacina cislem 1 proto decrementace !
hodnoty.splice(delkaPoleHodnot, 2); */
promenna_jmeno.splice (index_prvku_ktory_chces_odstranit,pocecet_prvkov_ktore_chces_odstranit) /*
}
[/js]
Přidání prvku do pole lze provést:
[js]
function pridejPrvekNaKonec()
{
delkaPoleHodnot = hodnoty.length;
hodnoty[delkaPoleHodnot] = [u1,u2]; // Pridani promennych u1 a u2
}
[/js]
Parádní poznámka k funkci splice. Pokud odeberete některou vnitřní hodnotu z pole tak to pole se
.
automaticky restrukturalizuje což lze jednoduše říci tak, že o dané místo se posunou ostatní prvky
vsak index pola zacina od "0", vsak?
cize spravne malo byt
[js]hodnoty[0][0] = 20;
hodnoty[0][1] = -3.78;[/js]
btw, preco mas taku zalubu v anonymnych poliach? mne sa daleko viacej paci normalny objektovy pristup:
[js]var hodnoty = new Array();
hodnoty[0] = new Array(20, -3.78);[/js]
ako odoberat prvky pola:
[js]var pole = new Array(1,2,3,4,5);
pole.shift() //odobere prvy prvok pola
pole.pop() // odobere posledny prvok pola[/js]
pridat prvky do pola zas pomocou
[js]pole.unshift(nejaka_hodnota) // prida na zaciatok pola
pole.push(nejaka_hodnota) // prida na koniec pola
[/js]
To jsou funkce, které jsem tady pracně naprogramoval a oni už jsou vymyšlené. OK.
Doufám že jsou tyto funkce validní v hodně prohlížečích.