3 stvari koje ne znate o JavaScript matricama
nizovi široko su korištena značajka programskih jezika; oni su posebne varijable koji se mogu koristiti za pohranu više vrijednosti u isto vrijeme. Međutim, kada je riječ o JavaScriptu, koliko je lako naučiti, uvijek postoji više za istraživanje.
U ovom postu pregledat ćemo tri manje poznate, ali važne značajke JavaScript polja koje ranije niste znali.
1. Dodajte prilagođena svojstva u nizove
Ako biste pretraživali internet tražeći temeljitu definiciju JavaScript polja, otkrit ćete da će gotovo svaki izvor bez kvarova navesti niz kao što stvarno je, objekt.
Zapravo, gotovo sve s čime se bavimo u JavaScriptu ispada da je objekt. U JavaScriptu postoje dvije vrste tipova podataka, primitivci i objekti, ali Primitivi su uvijek omotani unutar objekata.
Matrica, funkcija, datum itd. Su unaprijed definirane JavaScript objekte koji imaju ugrađene metode, svojstva i vlastitu standardiziranu sintaksu.
JavaScript polja mogu imati tri različita tipa svojstava:
- Indeksi niza su također svojstva
- Ugrađena svojstva
- Prilagođena svojstva možete sami dodati
Prve dvije su više poznate, možete ih koristiti svaki dan, ali hajde da ih vidimo brzo prije skakanja u način na koji možete dodati vlastitu prilagođenu osobinu nizu.
Indeksi kao Svojstva
JavaScript polja koriste sintaksa s uglatim zagradama, kao što su var ary = ["naranča", "jabuka", "liči");
.
Indeksi elemenata polja su u osnovi nekretnine gdje je imena nekretnina su uvijek ne-negativni cijeli brojevi.
par indeksnih elemenata niza sličan je nizu par ključ / vrijednost predmeta.
Indeksi su jedinstvena značajka objekta Array, a za razliku od drugih ugrađenih svojstava, oni mogu biti postavite samo sintaksom zagrada, kao što su ary [3] = "breskva";
.
Ugrađena svojstva
Nizovi također imaju ugrađena svojstva, kao što su array.length
. dužina
svojstvo nosi cjelobrojnu vrijednost koja označava duljinu niza.
Općenito, ugrađena svojstva mogu se često naći u unaprijed definiranim JavaScript objektima kao što su polja. Uz ugrađene metode pomažu prilagodite generičke objekte tako da su objekti prikladni za različite potrebe.
Ugrađenim svojstvima može se pristupiti bilo sa object.key
ili objekt [ „ključ”]
sintaksa. Tako možete i pisati arni [ „dužina”]
za pristup duljini niza.
Stvorite vlastita svojstva za objekt matrice
Razgovarajmo sada dodavanje vlastitih svojstava u nizove. Nizovi su unaprijed definirani objekti koji pohranjuju različite vrste vrijednosti s različitim indeksima.
Obično nije potrebno dodavati prilagođena svojstva nizu; ovo je jedan od razloga zašto se početnici obično ne uče o ovoj značajki. Zapravo, ako želite tretirati niz kao normalan objekt dodavanjem para ključeva i vrijednosti u njega, možda i vi koristite normalan objekt za svoju svrhu. Ali, to ne znači da ih nema posebne slučajeve gdje možete iskoristiti činjenicu da je niz objekt, dodajući mu jedno ili više prilagođenih svojstava.
Na primjer, možete dodati prilagođeno svojstvo nizu koji identificira "vrstu" ili "klasu" njezinih elemenata, kao što možete vidjeti u donjem primjeru.
var ary = ["naranča", "jabuka", "liči"); ary.itemClass = "plodovi"; console.log (ary + "su" + ary.itemClass); // "naranča, jabuka, liči su plodovi"
Imajte na umu da je prilagođeno svojstvo koje dodajete nizu enumerable, što znači da će ih pokupiti petlje kao što je za… u
izjava.
2. Okrenite se kroz elemente polja
Vjerojatno kažete "Znam to već", što je najvjerojatnije točno, već znate kako proći kroz elemente niza. Ali također je istina da je izreka "petlja kroz elemente niza" malo apstraktna, jer ono što zapravo provlačimo jesu indeksi niza.
Pošto su indeksni nizovi samo sastavljeni od ne-negativni cijeli brojevi, ponavljamo cjelobrojnu vrijednost koja obično počinje od nule i završava cijelom duljinom polja, a zatim upotrijebimo tu ponovljenu vrijednost da pristupimo elementu polja na danom indeksu.
Međutim, budući da ECMAScript6, postoji način da izravno putem petlje kroz vrijednosti polja bez uznemiravanja s indeksima, a to se može učiniti korištenjem za ... od
petlja.
U nizu, za ... od
petlja će kružiti kroz elemente niza u redoslijedu indeksa, drugim riječima, pobrinut će se za ponavljanje indeksa i dobivanje postojeća vrijednost niza po zadanom indeksu. Ova petlja je idealna ako želite samo provući sve elemente niza i raditi s njima.
var ary = ["naranča", "jabuka", "liči"); za (neka stavka od ary) console.log (stavka); "narandžasta", "jabuka", "liči"
Za usporedbu, s redovitim za
petlje, umjesto vrijednosti dobivamo indekse kao izlaz.
var ary = ["naranča", "jabuka", "liči"); za (var item = 0; stavka < ary.length; item++) console.log(item); // 0, 1, 2
3. Broj elemenata nije njegova duljina
Tipično, kada govorimo o duljina niza, smatramo da je to ili broj vrijednosti koje polje drži, ili duljinu koju smo dali nizu ručno. U stvarnosti, duljina polja ovisi o tome najveći postojeći indeks unutar njega.
Duljina je a vrlo fleksibilna nekretnina. Bilo da ste unaprijed odredili duljinu niza ili ne, nastavite dodavati vrijednosti u polje, njegovu duljinu sukladno tome i dalje raste.
varary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6
U gornjem primjeru, možete vidjeti da sam dao niz samo jednu vrijednost na indeksu 5, a duljina postaje 6. Sada, ako mislite da dodavanjem vrijednosti na indeks 5, polje je stvorilo indekse od 0 do 4 automatski , onda Vaša pretpostavka je netočna. Ima ih stvarno nema postojećih indeksa od 0 do 4 u tom polju. To možete provjeriti pomoću u
operater.
varary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 console.log (0 inarnih); // false
Niz arna
je ono što mi zovemo "rijetki" niz, niz gdje su indeksi se ne stvaraju kontinuirano, i imaju praznine. Suprotno od "rijetkih" polja je "gust" niz gdje indeksi kontinuirano postoje u nizu, a broj elemenata jednak je broju dužina
.
dužina
vlasništvo je također sposobno skraćivanje niza, osiguravajući da je najviši indeks prisutan u nizu uvijek manje od sebe, kao dužina
uvijek je brojčano veći od najvišeg indeksa prema zadanim postavkama.
U donjem primjeru možete vidjeti kako ćemo izgubiti element u indeksu 5 smanjivanjem dužina
od arna
red.
varary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 ary.length = 2; console.log (ary.length); // 2 console.log (ary [5]); // nedefiniran
Daljnje čitanje
- 10 JavaScript izraza koje biste trebali znati do sada
- 4 ne baš uobičajena, ali korisna Javascript izraza koja trebate znati
- Optimizacija koda pomoću JS Hinta - alata za ispisivanje Javascripta