WEBnSTUDY.com
JavaScript

Elementi JavaScript niza

Da se podsetimo: niz je takva struktura u memoriji, gde pod jednom promenljivom imamo više vrednosti numerisanih rednim brojevima. U JavaScriptu je podrazumevano prvi element niza uvek sa indeksom 0. Tako bi niz sa N elemenata u memoriji izgledao npr. ovako:

Indeks 0 1 2 ... N-1
Vrednost "Milan" "Jovan" "Petar" ... "Zoran"

Svakom elementu niza pristupamo preko njegovog indeksa koji navodimo u uglastoj zagradi.

a[i] Element niza a sa indeksom i.

Tako bismo u prethodnom primeru (pod pretpostavkom da je u pitanju niz a) pristupali članovima niza na sledeći način:

Indeks 0 1 2 ... N-1
Element a[0] a[1] a[2] ... a[N-1]
Vrednost "Milan" "Jovan" "Petar" ... "Zoran"

Obavezno pravite razliku između sledeće dve stvari:

a1 Promenljiva koja se zove a1.
a[1] Element niza a sa indeksom 1.

Kada deklarišemo niz, JavaScript neće praviti problem, bez obzira kom elementu mi probali da pristupimo. Ovo je velika stvar za programere koji su radili u drugim jezicima. Kada se niz deklariše, obično mu se navodi broj elemenata i svaki pokušaj pristupa elementu sa indeksom koji prevazilazi taj broj izaziva grešku i prekid rada programa.

Zbog svoje "fleksibilne" prirode, JavaScript (u kome pri deklaraciji čak ni ne moramo da navedemo broj elemenata niza), dozvoljava pristup bilo kom elementu. Štaviše, novi elementi niza se kreiraju prostim navođenjem novog broja indeksa.

Matrice

Kada radimo sa matricama, ne zaboravite da su one u stvari nizovi nizova. Na taj način se i obraćamo svakom elementu:

a[i][j]; // ispravno a[i,j]; // POGREŠNO - ovo funkcioniše u drugim jezicima, ali ne u JavaScriptu

Asocijativni nizovi

Asocijativni nizovi u JavaScriptu ne postoje! Bar ne u smislu na koji smo navikli u jeziku PHP i sličnim. Indeksi ne mogu biti tekstualni ključevi, već samo celobrojne vrednosti. Možete pomisliti da asocijativni nizovi postoje, pošto je moguće zadati tekstualnu vrednost u uglastim zagradama.

a["kljuc"] = vrednost; // ovo NIJE dodavanje elementa niza a.kljuc = vrednost; // potpuno ista stvar

Pošto je niz objekat, ovo je u stvari dodavanje novog svojstva objektu niza, a ne dodavanje vrednosti.

Pristup elementima niza


  var a = [];  // prazan niz
  a[0] = 267;  // slobodno unosimo vrednost
  a[1] = 502;  // u ovom trenutku niz ima 2 elementa
  
  a[9] = 331;  // novu vrednost unosimo pod bilo kojim indeksom
  // u ovom trenutku dužina niza postaje 10
  
  var x = a[100];  // pristup nepostojećem elementu nije greška u JavaScriptu, ali x je undefined
	

Niz se jednostavno prilagođava tome koje elemente mu zadajemo. U gornjem primeru, elementi niza od a[2] do a[8] se implicitno deklarišu, ali su im vrednosti undefined!

Prolazak kroz elemente niza

Kroz elemente niza najlakše prolazimo brojačkim ciklusom. Ne zabravite da elementi mogu biti i nedefinisani


  var a = ["Raja", "Gaja", "Vlaja"];  // niz sa tri elementa (indeksi 0, 1 i 2)

  // u konzoli ispisuje jedan po jedan element niza  
  for (var i=0; i<3; i++) {
    console.log( a[i] );
  }
	

Matrica

Kroz elemente niza najlakše prolazimo brojačkim ciklusom. Ne zabravite da elementi mogu biti i nedefinisani


	var m = [[25,34], [18,51], [92,44]];  // matrica dimenzije 3x2

  // u konzoli ispisuje jedan po jedan element matrice
  for (var i=0; i<3; i++) {
    for (var j=0; j<2; j++) {
      console.log( a[i][j] );
    }
  }
	
Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies) radi vođenja interne statistike u cilju unapređenja korisničkog iskustva. Tako prikupljeni podaci su anonimni i nedostupni trećim licima. Vaša privatnost nije ugrožena ni na koji način.