Kompjutera, Programimi
JavaScript-array dhe krijimi i tij. Gjithcka mbi vargjeve JavaScript
Në këtë artikull ne do të shikojmë në JavaScript-grup, përbërësit e tij. JavaScript është një skenar i orientuar drejt përkryer gjuhë projektuar për programimin. Në fakt, ajo zbaton gjuhën ECMAScript (standarde ECMA-262).
I JavaScript? Ajo është përdorur si një gjuhë të ngulitur në mënyrë të përcaktuar rrugën e programit për zbatimin e subjektit. Ajo mund të gjendet në shfletuesin: ajo është përdorur atje si një gjuhë e shkruar që i jep faqet web interaktive.
Tiparet kryesore arkitektonike të këtij produkti janë typing dinamike dhe i dobët, kujtesës ideal avtoupravlenie funksionet e programimit të cilat janë objekte të shkarkimit të parë.
Në fakt, në JavaScript ndikuar arsye të ndryshme, për shkak se zhvillimi do të krijonte një gjuhë të ngjashme me Java, por lehtë për t'u përdorur nga programuesit. Nga rruga, gjuha JavaScript nuk zotëron ndonjë kompani apo organizatë që e bën atë të ndryshme nga një numër të stileve programimit të përdorura nga web developers.
Duhet të theksohet se JavaScript - një markë e regjistruar e Oracle Corporation Group.
Çfarë është një grup?
Quajtur array llojin e të dhënave, e cila ruan vlerat e numëruara. Çdo vlerë e tillë është referuar si komponenti array dhe shifra nga i cili lidh komponent, i quajtur një indeks. JavaScript-array e untyped. Kjo do të thotë se pjesët e ngurta mund të ketë çfarëdo lloji, me pjesë të ndryshme që i përkasin të njëjtit grup, kanë lloje krejtësisht të ndryshme.
Përveç kësaj, JavaScript-array është dinamik, dhe thuhet se një madhësi të caktuar nuk duhet të deklarohet. Pas duke shtuar pjesë të reja në çdo kohë.
prodhimit të ngurta
Duke përdorur gjuhën Java skriptet për të krijuar një grup mjaft e vështirë. Ka dy metoda për këtë. E para ka të bëjë me prodhimin e një grup duke përdorur një literal - i kllapa katrore, brenda së cilës është vendosur një listë të sendeve, të ndara me presje.
- var = bosh []; // array bosh;
- numers var = [4, 1, 2, 5]; // grup me pesë komponente dixhitale;
- var diff = [1.5, false, «tekst"]; // grup me tre elemente të llojeve të ndryshme.
Si rregull, ajo nuk është e nevojshme të jetë vlera e thjeshtë (rreshtave dhe numra). Ajo gjithashtu mund të jetë ndonjë shprehje tjetër, për shembull, literals objekt, funksionet e tjera dhe vargjeve.
Mënyra e dytë për të krijuar një projektuesi array është për të thirrur Array (). Për të ftuar atë për një nga tre metodat:
- Telefononi një projektuesi pa argumente: var b - Array re (). Ajo parashikon krijimin e një ekuivalent array bosh për një literal zbrazët [].
- Projektuesi i ka specifikuar në mënyrë të qartë e vlerës n e komponentëve array: var b = array ri (1, 3, 5, 8, "linjë», e vërtetë). Në këtë rast, projektuesi paraqiti një listë të argumenteve, të cilat janë shndërruar në një komponente të reja array. Argumentet janë të shkruara në grup është vend ku tregohet.
- Përcaktimi qëllimin për vlerat më tej caktimin. Kjo është bërë duke specifikuar array zbulimit një numër të mbyllur në kllapa: var b = Array ri (5). Kjo metodë e zbulimit përfshin vektorit ndarjen shumës së kërkuar të komponentëve (secila prej të cilave është e shënuar si i padefinuar), me një mundësi për përcaktimin e vlerave në prezantim. Kjo formë është përdorur zakonisht për të para-ndajë Javascript-rrjet gjatësia e të cilit është i njohur paraprakisht.
Regjistrimi, duke lexuar dhe duke shtuar detaje të array
Get në komponentët e vektorit mund të jetë nëpërmjet operatorit []. Nga rruga, të gjithë komponentët në JavaScript, duke filluar nga zero, janë të numëruara. Për të marrë elementet e nevojshme, tregojnë numrin e saj në kllapa katrore. Si një rregull i përgjithshëm, sendet mund të ndryshohet. Një JavaScript për të shtuar në grup, është e mjaftueshme që të caktojë një vlerë të re.
Duhet të theksohet se në JavaScript vargjeve mund të ruajë ndonjë numër të elementeve të çdo lloji.
Gjatësia e vektorit
Pra, ne e dimë se çfarë JavaScript. Gjatësia e vektorit në përgjithësi është një fenomen interesant. Le të konsiderojmë atë në më shumë detaje. Të gjitha vargjet janë ndërtuar duke përdorur Designer array () dhe zbuluar përmes një rrjet të mirëfilltë të ketë një pronë të veçantë gjatësi, e cila tërheq numrin e përgjithshëm të elementeve duke ua lënë gjallë. Që nga array mund të jetë e pasigurt nga detajet (pacaktuar i caktuar), një shprehje më të saktë tingëllon kështu: gjatësia Cilësia është gjithmonë më i madh nga një se numri më i madh (indeksi) i komponentit array. Gjatësia cilësi të rregullohet automatikisht, duke qëndruar saktë në shfaqjen e një sërë detaje të reja.
Për të shfaqur Komponenti i fundit i një grup, ju mund të përdorni pronën gjatësi.
Pjesa e fundit është indeksi një më pak se madhësia e array. Pas numërimin fillojnë gjithmonë nga e para. Oh, kjo JavaScript! Gjatësia e vektorit varet numrin e saktë të elementeve. Prandaj, në qoftë se ju nuk e dini se sa duhet të ketë, por ju duhet të kthehet në elementin e fundit të vargut, është e nevojshme për të aplikuar rekord: v.length - 1.
Iterate array e pjesëve
Shumë shpesh, prona gjatësia është përdorur për të iterate mbi array e pjesëve në ciklin:
- fruta var = [ «luleshtrydhe", "bukuroshe", "Apple", "banane"];
- për (var I = 0; i
- document.write (fruta [i] + «...»).
Në këtë shembull duket se komponentët janë të rregulluar në mënyrë të vazhdueshme dhe të fillojë me pjesën e parë, e cila mban indeksin zero. Nëse kjo nuk është rasti, para se duke e quajtur çdo element të vektorit duhet të kontrollohet në qoftë se ajo është e përcaktuar.
Cikli është gjithashtu përdoret ndonjëherë për të nisja komponentët.
Rritja dhe array truncation
Pyes veten se si duke përdorur Gjuhë Javascript varg në një rrjet për të shtuar? Në procesin e punës me vargjeve, gjatësia gjatësia automatikisht përmirëson cilësinë, e cila është arsyeja pse ne duhet të kujdeset për atë veten. Është e nevojshme të kujtojmë një detaj të vetëm - gjatësia e pronës nuk është në dispozicion për të lexuar vetëm, por për rekord. Në qoftë se vlera e atribut gjatësi të cilësisë i cili i jep madhësinë e tanishëm, array është reduktuar në një vlerë të paracaktuar. Çdo komponentë që nuk janë të përfshira në varg të ri të indekseve, të mbështetur në kolltukë dhe vlerat e tyre janë të humbur, edhe në qoftë se ju më vonë kthehet prapa gjatësi - vlera nuk të rivendoset.
Quite thjesht qartë array si: foo.length = 0.
Në qoftë se cilësia e gjatësisë drejtuar madhe se vlera e tij aktuale, në fund të vektorit do të jenë të reja, të komponenteve të paidentifikuar, i cili do të rrisë atë në madhësinë e dëshiruar.
Fshirja e një grup të detajeve
Operatori fshini tregon komponentin e vektorit të papërcaktuar, por ajo vazhdon të ekzistojë në këtë rast. Nëse ju dëshironi të hiqni elementin JavaScript e vektorit në mënyrë që pjesa e mbetur zhvendosur në vendin vakant, ju duhet të përdorni një nga mënyrat për të parashikuar array. Metoda Array.shift () largon një komponent të parë, pop () - ndërprerjen komponent dhe një Splice metodë () - një komponent apo shkojnë diku array.
vargjeve shumëdimensionale
Duket se ne e kuptojmë pak, çfarë JavaScript. vargjeve dy-dimensionale - që duhet të merren parasysh më tej. A ju kujtohet se vargjeve JavaScript mund të përmbajë si komponentë e sende të tjera? Ky funksion është përdorur për prodhimin e vargjeve multi-dimensionale. Për të vizituar komponentët në një grup të vargjeve është e mjaftueshme për të aplikuar kllapa dy herë.
vargjeve asociative
Tani ne mësojmë se si të trademark përdor Javascript vargjeve associative. Për ta bërë këtë, ne duhet të shikojmë në teorinë: vargjeve asociative janë quajtur nganjëherë tavolina hash. Falë tyre, në vend të rreshtave indeksit zbatohen. Përdorimi i strukturave të tilla kujton e përdorimit të emrit të pronave të një objekti të thjeshtë, por në këtë mishërim, ecuria e punës në një format array. Që nuk ka mënyra për të manipuluar JavaScript vargjeve asociative, ato janë përdorur shumë më shpesh se zakonisht. Ajo duhet të theksohet se ata ende mund të jenë të dobishme për ruajtjen e të dhënave dhe për të lehtësuar ruajtjen e pjesëve, të cilat do të arrihen.
array output
Dhe tani ne do të studiojnë në sistemin e JavaScript? array Output në kutinë e dialogut (në ekran), si dhe vlerat e prodhimit të komponentëve array.
Nëse programi ju dëshironi për të shfaqur vlerat e të gjithë komponentëve, atëherë ai është i përshtatshëm për të aplikuar udhëzimet për. Interesante, rregullat e ndryshueshme-counter për përdorim në të njëjtën kohë si komponent i indeksit array.
pastrim
Në mënyrë për të filtruar një grup të JavaScript, ju keni nevojë për të rivendosur gjatësinë e saj:
- var myArray = [1, 2, 5, 23];
- myArray.length = 0.
Në vijim tregon zbatimin e destinacionit të qartë (), në një kuadër, JavaScript-Prototype:
- qartë: funksion () {;
- this.length = 0;
- kthyer këtë;
- }.
Shtimi dhe heqja e komponentëve
E pra, ne vazhdojmë të eksploruar më tej këtë emocionuese gjuhë JavaScript. element array jetë e mundur dhe për të hequr dhe shtuar në të njëjtën mënyrë si pronat konvencionale të objekteve të tjera. Por ka disa dallime: Shtimi numerik gjatësinë e cilësisë pronave mund të ndryshojnë, por në ndryshimin e gjatësisë pronave mund të eliminohet me cilësi numerike. Në parim, si instaluar algorithm në vargjeve është si vijon:
- Kur duke shtuar një veti dixhitale panjohura e unë, kur gjatësia është e barabartë me ose më pak se unë, gjatësia është i vendosur të jetë i + 1.
- Kur ju të ndryshojë cilësinë e gjatësisë për të kryer hapat e mëposhtëm: në qoftë se vlera e caktuar është më pak se zero, pastaj hedh RangeError. Eliminon të gjitha indekseve të cilësisë numerike që janë të barabartë me gjatësinë e re dhe më e madhe se.
Në fakt të hequr element JavaScript array është e thjeshtë. Pas të gjitha, madje edhe vendosjen gjatësinë, ju duhet të hiqni komponentët "ekstra" prej saj. Ajo vijon nga ky grup pastrimi opsion. Nëse ndryshorja është caktuar një grup të ri bosh, për çfarëdo arsye, nuk ishin të kënaqur, dhe është e nevojshme për të rivendosur aktuale, cilësia e saj është gjatësia e mjaftueshme që të caktojë një vlerë prej zero.
Metodat unshift, ndryshim, pop dhe push
Pavarësisht nga fakti se komponentët e vektorit janë ndryshuar me dorë, shumë rekomandojmë të përdorni këtë ndërtuar në metoda. Është kjo nuancë garanton vlerën e saktë të cilësisë dhe mungesën e gjatësisë në kalon array. Nga rruga, cilësia e gjatësisë saktë do të korrespondojnë me numrin e komponentëve.
Procesi i lëviz për të shtyrë fundin e vektorit transmetohet artikujve. Pop përsëri procesi i jep Komponenti i fundit dhe heq atë.
Në përgjithësi në Internet Explorer në versionin e tetë unshift mund të kthehen papërcaktuar, në shfletues të tjera - vlera e re e gjatësisë. Në mënyrë që vlera e kthimit nga unshift më mirë të mos shpresojnë.
Shtimi dhe eliminimi i pjesëve në mes të vektorit
Nëse dëshironi të fshini një grup të JavaScript, ju duhet të merrni? Është e njohur se metoda ka një Array.prototype.splice nënshkrim me thurje.
Ai tërhiqet nga komponentët e array deleteCount, duke filluar me Indeksin e fillimit. Në qoftë se ju të kalojë më shumë se dy argumente, të gjitha argumentet e mëvonshme në grup janë të rregulluar në vendin e likuiduar. Nëse fillimi është minus, indeksi në të cilën për të rifilluar tërheqja do të jetë e barabartë me gjatësinë + fillojnë. Pas kthimit në grup të elementeve të largëta zhvillohet.
Në fakt, duke përdorur metodën me thurje, është e mundur për të hequr komponentët nga mesi i një grup ose shtoni ndonjë numër kudo në rrjet.
Në mishërim të thjeshtë, nëse është e nevojshme për të hequr komponentin me indeks i, array duhet të kërkojë metodën me thurje me parametra unë dhe 1.
Në parim, opsioni i dytë në metodën me thurje nuk është e detyrueshme, por sjellja e funksionit me një argument për çdo shfletuesi është i ndryshëm.
Për shembull, në Firefox, Opera në ndryshimet e fundit, të gjitha detajet para përfundimit të vektorit do të hiqet në Safari dhe Chrome.
asnjë komponent i vetëm është eliminuar në IE. Variacioni i parë është e pamundur të parashikohet sjellja e Operas - do të hiqet një artikull me Indeksin e fillimit - 1. Prandaj është gjithmonë e nevojshme në këtë metodë për të transmetuar të paktën dy komponente.
çelësat
Sigurisht, të mësuar JavaScript, vargjeve asociative, siç u përmend më parë, ju duhet gjithashtu të mos të neglizhohet. Kjo është një pamje abstrakte e informacionit (interface në dyqan të dhënave), e cila lejon për të ruajtur një palë e formës "(kyç, vlera)" dhe funksionimin e shtuar një palë të mbështetjes, si dhe fshirjen dhe kërkimin e palë kyçe:
- Gjeni (kyçe).
- INSERT (vlera, kyç).
- Hiq (kyçe).
Besohet se në një grup shoqerues nuk mund të shpëtojë dy palë me çelësat ngjashme. Në një çift të k + VV është vlera e lidhur me k kyç. Semantika dhe këtu me operacionet e mësipërme në zbatimeve të ndryshme të vargjeve të tilla mund të jenë të ndryshme.
Kështu, GJENI operacion (kyçe) kthen një vlerë lidhur me një çelës të caktuar, apo një UNDEF veçantë objekt, që do të thotë se vlera e lidhur me një çelës të caktuar, offline. Dy veprimet e tjera nuk do të kthehen (me përjashtim të dhëna rreth se operacioni ishte i suksesshëm).
Në përgjithësi, në aspektin e ndërfaqes, array associative e cila konsiderohet si një grup të thjeshtë, ku si tregues mund të zbatohet jo vetëm numra integer por llojet e tjera dhe vlerat - për shembull, linja.
Rastësisht, mbështetje për vargjeve të tilla janë trajtuar ka shumë të nivelit të lartë gjuhë programimi si PHP, Perl, Ruby, Python, TCL, JavaScript dhe të tjerët. Për gjuhët që nuk kanë ndërtuar në mjete për të punuar me vargjeve associative, ka krijuar një numër të madh të realizimeve në formën e bibliotekave.
Një shembull i një grup shoqerues mund të shërbejë si një numëratorin telefonik. Në këtë mishërim, vlera është vendosur "F. IO + e ", dhe çelësi - numri i telefonit. Një numër telefoni është një mjeshtër, por një person mund të zotërojnë numra të shumta.
extension lidhur
Ajo duhet të theksohet se extensions më të njohura përfshijnë si në vijim:
- ÇDO - «ecin» në të gjithë kursen palë.
- CLEAR - për të fshirë të gjitha shënimet.
- MIN - për të gjetur një palë me vlerën më të ulët kyç.
- MAX - për të gjetur një palë me vlerën më të madhe kryesore.
Në dy rastet e fundit që ju duhet të me çelësat treguar efekt krahasim.
Realizimi i vargjeve associative
Ka shumë Implementimi ndryshme të array associative. Zbatimi më i zakonshëm mund të jetë i bazuar në një grup të thjeshtë komponentët e të cilit janë palë (çelësi vlera). Për të shpejtuar funksionet e kërkimit, ju mund të organizoni komponentët e vektorit nga një konstatim kyç dhe zbatuar duke përdorur një kërkim binar. Por kjo do të rrisë sasinë e kohës e nevojshme për të shtuar një çift të ri, si do të duhet të "shtyjë" komponentët array që u shfaq në një qelizë të zbrazët që të dal një rekord të ri.
Më i njohur Zbatimi, bazuar në pemë të ndryshme të kërkimit. Për shembull, në një dhomë leximi STL C ++ gjuhës Trailers hartë tipike është zbatuar në bazë të zezë dhe sofër. Në Ruby, stilet, TCL, Python përdor një lloj të tabelave hash. Ka zbatimi tjera.
Në përgjithësi, çdo zbatimi ka avantazhet dhe disavantazhet e veta. Është e rëndësishme që të tre operacionet janë përmbushur mesatarisht, dhe në periudhën më të keqe të nuancë rreth (log n), ku n - numri aktual për të shpëtuar par. Për pemët e kërkimit të përbashkëta (duke përfshirë pemët e zezë dhe të kuqe), ky kusht është i kënaqur.
Është e njohur se në implementime të bazuara në tabelat hash, koha mesatare është përcaktuar si D (1), e cila është më e mirë se në veprimet e bazuara në pemë kërkimit. Sigurisht, kjo nuk garanton një performancë të lartë-shpejtësi të operacioneve të veçanta: INSERT kohë veprimi në rastin më të keq, shënohet si O (n). Procesi INSERT është kryer për një kohë të gjatë kur raporti detyrë arrin pikën më të lartë, dhe nuk është nevoja për të rindërtuar indeksin e tabelës hash.
Nga rruga, këto deklarata hash keq që mbi këtë bazë është e pamundur për të kryer shpejtë veprim shtesë maksimale, minimale, dhe një algoritëm për të kërkuar të gjithë kursen palë në rend zbritës ose ngjitje çelësat.
Similar articles
Trending Now