Polia v JavaScripte – kompletný popis metód

5. února 2001

Ve druhej časti o poliach v JavaScripte nájdete kompletný popis metód.

pole1.concat(pole2, pole3, …, poleN) – spojí polia a vráti nové pole
„pole2, pole3, …, poleN“ – polia, ktoré sa pripoja k „pole1“, na ktorom voláme metódu

var pole1 = new Array(„Eva“,“Zuzana“);
var pole2 = new Array(„Adam“,1,2,3);
var pole3 = new Array(„Peter“);
var pole4 = new Array();
pole4 = pole1.concat(pole2,pole3);
// pole4 = „Eva“,“Zuzana“,“Adam“,1,2,3,“Peter“

join(separator) – spojí všetky prvky poľa do reťazca a vráti tento reťazec
separator – nepovinný reťazec, ktorý sa vloží medzi jednotlivé prvky poľa (prednastavený je „,“)

var pole = new Array(„Eva“,“Lenka“,“Monika“,“Katka“);
var s1;
var s2;
var s3;
s1 = pole.join();
// s1 = Eva,Lenka,Monika,Katka
s2 = pole.join(„“);
// s2 = EvaLenkaMonikaKatka
s3 = pole.join(“ + „);
// s2 = Eva + Lenka + Monika + Katka

reverse() – obráti poradie prvkov poľa od konca po začiatok a vráti toto pole

var pole = new Array(„jeden“,“dva“,“tri“,“4″,“5″);
pole.reverse();
// pole = 5,4,tri,dva,jeden

slice(začiatok,koniec) – vyberie časť poľa a vráti toto pole
začiatok – povinný index prvku poľa, odkade bude pole vybrané (vrátane prvku s týmto indexom)
koniec – nepovinný index prvku poľa, pokade bude pole vybrané (bez prvku s týmto indexom). Ak bude argument koniec záporné číslo (nefunguje v Opere), vráti nám rovnaké pole, ako keby sme zadali argument koniec nasledovne: pole.length – koniec, teda určuje počet prvkov od konca poľa, ktoré nebudú do vybraného poľa patriť. Nezadaním argumentu koniec sa nám vyberie pole až po jeho koniec.

var pole1 = new Array(„jano“,“fero“,“zuza“,“katka“,“monika“);
var pole2 = new Array();
var pole3 = new Array();
var pole4 = new Array();
pole2 = pole1.slice(1,3);
// pole2 = fero,zuza
pole3 = pole1.slice(0,-2);
// pole3 = jano,fero,zuza
// pole3 = jano,fero,zuza,katka,monika (Opera)

pole4 = pole1.slice(3);
// pole4 = katka,monika

sort(kritTried) – triedi prvky poľa „podľa abecedného poradia“ a vráti toto pole
kritTried – nepovinná funkcia, ktorá určuje kritérium triedenia jednotlivých prvkov. Vstupom sú dva argumenty, napr. „a“, „b“ a funkcia musí spĺňať nasledovné:

  • ak a < b vráti záporné číslo (pri triedení sa „a“ zaradí pred „b“)
  • ak a > b vráti kladné číslo (pri triedení sa „a“ zaradí za „b“)
  • ak a == b vráti 0 (pri triedení sú si rovnocenní)

Ak chýba funkcia triedenia, pole sa zoradí podľa abecedého poradia.

function kritTried(a,b){ // function kritTried(a,b) { return a-b; }
  if(a < b)
    return -1;
  if (a > b)
    return 1;
  return 0;
  }
var pole1 = new Array(„Eva“,“Zuza“,“Monika“,“Katka“);
var pole2 = new Array(11,2,33,44,22,1111);
var pole3 = new Array(11,2,33,44,22,1111);
pole1.sort();
// pole1 = Eva,Katka,Monika,Zuza
pole2.sort();
// pole2 = 11,1111,2,22,33,44
pole3.sort(kritTried);
// pole3 = 2,11,22,33,44,1111

toString – vráti reťazec, ktorý obsahuje všetky prvky poľa oddelené čiarkou
Metóda toString je automaticky volaná napr. v nasledovnom prípade: document.write(pole), teda nie je potrebné niečo takéto: document.write(pole.toString()). V niektorých prípadoch ju ale musíme zavolať sami:

var pole = new Array(„www“,“interval“,“sk“);
pole.toUpperCase();
// toUpperCase nie je metódou Array, preto musím zavolať metódu toString
pole.toString().toUpperCase();
// toUpperCase – vráti reťazec s veľkými písmenami WWW,INTERVAL,SK

Nasledujúce metódy nefungujú v IE verzii 5.0 a nižšej.

pop() – odstráni posledný prvok poľa a vráti tento prvok. Táto metóda mení vlastnosť length.

var pole = new Array(„Eva“,“Zuza“,“Monika“,“Katka“);
var prvok;
prvok = pole.pop();
// pole = Eva,Zuza,Monika
// prvok = Katka

push(prvok1, …, prvokN) – pridá prvok, alebo prvky na koniec poľa a vráti novú veľkosť tohto poľa (IE 5.5, alebo JavaScript 1.3 pre NN). V JavaScripte verzii 1.2 pre NN vráti táto metóda posledný pridaný prvok poľa. Táto metóda mení vlastnosť length.

var pole = new Array(„Eva“,“Zuza“);
var co;
co = pole.push(„Monika“,“Katka“);
// pole = Eva,Zuza,Monika,Katka
// co = 4 (JavaScript1.3, alebo IE 5.5, alebo Opera)
// co = Katka (JavaScript1.2)

shift() – odstráni prvý prvok z poľa a vráti tento prvok. Táto metóda mení vlastnosť length.

var pole = new Array(„Eva“,“Zuza“,“Monika“,“Katka“);
var prvok;
prvok = pole.shift();
// pole = Zuza,Monika,Katka
// co = Eva

splice(index, koľko, prvok1, …, prvokN) – odstráni časť poľa a vloží nové prvky poľa. Vo verzii JavaScript 1.3 pre NN vráti táto metóda odstránené pole. Vo verzii JavaScript 1.2 pre NN vráti pole iba ak je odstránených viac ako jeden prvok, inak vráti tento prvok. V IE 5.5 a Opera 5.02 vráti vždy pole.
index – index poľa, od ktorého sa bude meniť pôvodné pole koľko – číslo, koľko prvkov poľa sa má odstrániť prvok1, …, prvokN – prvky, ktoré sa vložia do poľa. Jedná sa o nepovinný argument, teda ak nezadáme nič, iba sa odstráni „koľko“ prvkov od indexu „index“.

var pole = new Array(„Eva“,“Zuza“,“Monika“,“Katka“);
var vybrate;
pole.splice(2,0,“Adam“);
// pole = Eva,Zuza,Adam,Monika,Katka
vybrate = pole.splice(3,1);
// pole = Eva,Zuza,Adam,Katka
// vybrate = Monika

vybrate = pole.splice(2,1,“Peter“);
// pole = Eva,Zuza,Peter,Katka
// vybrate = Adam

vybrate = pole.splice(0,2,“yoko“,“ono“);
// pole = yoko,ono,Peter,Katka
// vybrate = Eva,Zuza

unshift() – pridá prvok, alebo prvky na začiatok poľa a vráti novú veľkosť tohto poľa (iba NN a Opera). IE 5.5 vráti „undefined“ ?! Táto metóda mení vlastnosť length.

var pole = new Array(„Monika“,“Katka“);
var co;
co = pole.unshift(„Eva“,“Zuza“);
// pole = Eva,Zuza,Monika,Katka
// co = 4
// co = undefined (IE 5.5)

Metódy boli odskúšané na NN 4.08 a 4.61, Opera 5.02, IE 5.0, IE 5.5. V jednotlivých verziách sa objavujú isté odlišnosti, ale väčšinou sa jedná o vrátené hodnoty metód, ktoré nie sú až tak dôležité, pretože zmeny sa odohrávajú hlavne na poli, na ktorom je metóda volaná. Dúfam, že tento popis metód vám uľahčí prácu s poliami.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *