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
a co sem, takhle napsat odpoved, když jsi to označil jako vyřešené .. až to bude někdo hledat odpoved, bude mmít na tváři uspěv, až uvdí, že je to oznažené... ale až si přečte thread ..
[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.