Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Programet
  • Teknika të dobishme për të punuar me vargje në JavaScript. Duke punuar me vargje në JavaScript si një profesionist

Teknika të dobishme për të punuar me vargje në JavaScript. Duke punuar me vargje në JavaScript si një profesionist

Në këtë artikull do të shikojmë një grup JavaScript dhe përbërësit e tij. JavaScript është krijuar në mënyrë ideale për programim. Në fakt, ai zbaton gjuhën ECMAScript (standardi ECMA-262).

Ku përdoret JavaScript? Përdoret si një gjuhë e integruar për të përcaktuar shtegun e programit për subjektin e aplikacionit. Mund të gjendet në shfletues ku përdoret si një gjuhë skriptimi që i bën faqet e internetit interaktive.

Karakteristikat më të rëndësishme arkitekturore të këtij produkti janë shtypja dinamike dhe e dobët, menaxhimi automatik i kujtesës, programimi i përsosur dhe funksionet e objekteve të klasit të parë.

Në përgjithësi, JavaScript u ndikua nga arsye të ndryshme, sepse gjatë zhvillimit ata donin të krijonin një gjuhë të ngjashme me Java, por të lehtë për t'u përdorur nga programuesit. Nga rruga, gjuha JavaScript nuk është në pronësi të ndonjë kompanie apo organizate, gjë që e bën atë ndryshe nga një numër stilesh programimi të përdorura nga zhvilluesit e uebit.

Duhet të theksohet se JavaScript është një markë tregtare e regjistruar e Oracle Corporation.

Çfarë është një grup?

Një grup është ai që ruan vlera të numëruara. Çdo vlerë e tillë quhet një komponent grupi, dhe shifra me të cilën është lidhur komponenti quhet indeks. Vargu JavaScript është i pashtypshëm. Kjo do të thotë se pjesët e një grupi mund të jenë të çdo lloji, dhe pjesë të ndryshme që i përkasin të njëjtit grup kanë lloje krejtësisht të ndryshme.

Përveç kësaj, grupi JavaScript është dinamik, që do të thotë se nuk ka nevojë të deklarohet një madhësi fikse. Në fund të fundit, mund të shtoni detaje të reja në çdo kohë.

Prodhimi i vargjeve

Duke përdorur JavaScript, krijimi i një grupi nuk është aspak i vështirë. Ka dy metoda për këtë. E para përfshin krijimin e një grupi duke përdorur një kllapa literale - katrore, brenda së cilës është një listë e pjesëve, të ndara me presje.

  • var bosh = ; //array bosh;
  • var numra = ; //array me pesë komponentë dixhitalë;
  • var ndryshim = ; //array me tre elemente të llojeve të ndryshme.

Në mënyrë tipike, vlerat këtu nuk kërkohet të jenë të thjeshta (vargjet dhe numrat). Mund të jetë gjithashtu çdo shprehje tjetër, për shembull, fjalë për fjalë lëndë, funksione dhe vargje të tjera.

Mënyra e dytë për të krijuar një grup është thirrja e projektuesit Array(). Ju mund ta ftoni atë në tre mënyra:

  • Thirrja e projektuesit pa argumente: var b - new Array(). Kjo parashikon krijimin e një grupi bosh, ekuivalent me një literal bosh.
  • Konstruktori specifikon në mënyrë eksplicite vlerën e n komponentëve të grupit: var b = Array i ri (1, 3, 5, 8, "string", e vërtetë). Në këtë rast, projektuesit i paraqitet një listë argumentesh që kthehen në përbërës të një grupi të ri. Argumentet shkruhen në grup në vendndodhjen në të cilën janë specifikuar.
  • Përcaktimi i zonës për caktimin e mëvonshëm të vlerave. Kjo bëhet duke specifikuar, kur identifikohet një varg, një numër i vetëm i mbyllur në kllapa: var b = Array i ri (5). Kjo metodë identifikimi përfshin shpërndarjen e numrit të kërkuar të komponentëve në grup (secila prej të cilave është e shënuar si e papërcaktuar) me mundësinë e caktimit të vlerave më pas gjatë procesit të prezantimit. Kjo formë zakonisht përdoret për të paracaktuar një grup Javascript, gjatësia e të cilit dihet paraprakisht.

Shkrimi, leximi dhe shtimi i detajeve të grupit

Ju mund të aksesoni përbërësit e një grupi duke përdorur operatorin. Nga rruga, të gjithë përbërësit në JavaScript, duke filluar nga zero, janë të numëruar. Për të marrë elementin e kërkuar, numri i tij tregohet në Si rregull, detajet mund të ndryshohen. Dhe për të shtuar JavaScript në grup, thjesht duhet të caktoni një vlerë të re.

Duhet të theksohet se vargjet JavaScript mund të ruajnë çdo numër elementësh të çdo lloji.

Gjatësia e vargut

Pra, ne e dimë se gjatësia e një vargu është përgjithësisht një fenomen interesant. Le ta shohim më në detaje. Të gjitha vargjet, qofshin të ndërtuara duke përdorur projektuesin Array() ose të zbuluar përmes një vargu literal, kanë një veçori të gjatësisë specifike që tregon numrin total të elementeve të ruajtura. Meqenëse një grup mund të përmbajë pjesë të papërcaktuara (të shënuara me të papërcaktuara), një shprehje më e saktë është: cilësia e gjatësisë është gjithmonë një më e madhe se numri (indeksi) më i madh i komponentit të grupit. Cilësia e gjatësisë rregullohet automatikisht, duke mbetur e saktë kur shfaqen pjesë të reja në grup.

Për të shfaqur komponentin përfundimtar të grupit, mund të përdorni veçorinë gjatësi.

Pjesa e fundit ka një indeks një më pak se madhësia e grupit. Në fund të fundit, numërimi mbrapsht fillon gjithmonë nga e para. Oh, ky JavaScript! Gjatësia e grupit varet nga numri i saktë i elementeve. Pra, nëse nuk e dini se sa duhet të ketë, por duhet të përdorni elementin përfundimtar të grupit, duhet të përdorni shënimin: v.length - 1.

Përsëritja mbi detajet e grupit

Shumë shpesh vetia gjatësia përdoret për të përsëritur mbi detajet e një grupi në një lak:

  • var fruta = [“luleshtrydhe”, “pjeshkë”, “mollë”, “banane”];
  • për (var I = 0; i< fruits.lenght; i++);
  • dokument.shkruaj(frutat[i] + "...").

Në këtë shembull, komponentët duket se vendosen vazhdimisht dhe fillojnë me pjesën e parë që zotëron një indeks zero. Nëse nuk është kështu, përpara se të thërrisni çdo element të grupit, duhet të kontrolloni nëse ai është i përcaktuar.

Një lak përdoret gjithashtu ndonjëherë për të inicializuar komponentët.

Rritni dhe shkurtoni një grup

Pyes veten se si të shtoj një varg në një grup duke përdorur JavaScript? Ndërsa punojmë me vargje, gjatësia e cilësisë përmirësohet automatikisht, prandaj duhet të kujdesemi vetë për të. Është e nevojshme të mbani mend një detaj - vetia e gjatësisë nuk është vetëm e lexueshme, por edhe e shkruhet. Nëse cilësisë së gjatësisë i caktohet një vlerë që është më e vogël në madhësi se ajo aktuale, atëherë grupi reduktohet në madhësinë e specifikuar. Çdo komponent që nuk është në intervalin e ri të indeksit hidhet poshtë dhe vlerat e tyre humbasin, edhe nëse gjatësia kthehet më vonë - vlerat nuk rikthehen.

Është mjaft e lehtë për të pastruar grupin si kjo: foo.length = 0.

Nëse cilësia e gjatësisë bëhet më e madhe se vlera e saj aktuale, në fund të grupit do të shfaqen pjesë të reja të paidentifikuara, të cilat do ta rrisin atë në madhësinë e dëshiruar.

Heqja e pjesëve të modelit

Operatori i fshirjes specifikon një vlerë të papërcaktuar në një komponent të grupit, por ai vazhdon të ekzistojë. Nëse ju duhet të hiqni një element të një grupi JavaScript në mënyrë që pjesët e mbetura të zhvendosen në hapësirën e lirë, duhet të përdorni një nga metodat e ofruara të grupit. Metoda Array.shift() eliminon komponentin e parë, pop() eliminon komponentin përfundimtar dhe metoda splice() eliminon një ose një varg komponentësh kudo në grup.

Vargjet shumëdimensionale

Duket se e kemi kuptuar pak, vargjet dydimensionale janë ato që duhet të shqyrtojmë më pas. A ju kujtohet se vargjet JavaScript mund të përmbajnë elementë të tjerë si komponentë? Kjo veçori përdoret për të prodhuar vargje shumëdimensionale. Për të vizituar komponentët në një grup vargjesh, thjesht përdorni dy herë kllapa katrore.

Vargjet asociative

Tani le të shqyrtojmë se si marka tregtare JavaScript përdor vargje shoqëruese. Për ta bërë këtë, ne duhet të shqyrtojmë teorinë: grupet shoqëruese nganjëherë quhen tabela hash. Falë tyre, vargjet përdoren në vend të indekseve. Përdorimi i ndërtimeve të tilla të kujton përdorimin e emrit të një vetie të një objekti të thjeshtë, por në këtë version kur kryeni punë në një format grupi. Meqenëse JavaScript-it i mungojnë mënyrat për të vepruar me vargje shoqëruese, ato përdoren shumë më rrallë se ato të rregullta. Duhet të theksohet se ato mund të jenë ende të dobishme për ruajtjen e të dhënave dhe ta bëjnë më të lehtë të kujtosh detajet që duhen akses.

Prodhimi i grupit

Çfarë do të mësojmë për JavaScript tani? Shfaqja e grupit në një kuti dialogu (në ekranin e monitorit), si dhe shfaqja e vlerave të përbërësve të grupit.

Nëse keni nevojë të shfaqni vlerat e të gjithë komponentëve në një program, atëherë është e përshtatshme të përdorni deklaratën for. Interesante, variabli numërues for rregullat përdoret si indeks i një komponenti të grupit.

Pastrimi

Për të filtruar një grup JavaScript, duhet të rivendosni gjatësinë e tij në zero:

  • var myArray = ;
  • myArray.gjatësia = 0.
  • qartë: funksion() (;
  • kjo.gjatësia = 0;
  • ktheje këtë;

Shtimi dhe heqja e komponentëve

Epo, le të vazhdojmë të studiojmë këtë gjuhë interesante JavaScript. Një element grupi mund të fshihet ose shtohet në të njëjtën mënyrë si vetitë e rregullta të objekteve të tjera. Por ka disa dallime: shtimi i vetive numerike mund të ndryshojë cilësinë e gjatësisë dhe modifikimi i vetive të gjatësisë mund të eliminojë cilësitë numerike. Në parim, algoritmi për vendosjen e cilësive për vargje është si më poshtë:

  • Kur shtoni një veti dixhitale të panjohur i, nëse gjatësia është e barabartë ose më e vogël se i, gjatësia përcaktohet të jetë i+1.
  • Kur ndryshon cilësia e gjatësisë, kryhen veprimet e mëposhtme: nëse vlera e caktuar është më e vogël se zero, atëherë hidhet një Gabim Gabim. Eliminohen të gjitha cilësitë dhe indekset numerike që janë të barabarta me gjatësinë e re dhe që janë më të mëdha.

Në përgjithësi, fshirja e një elementi të një grupi JavaScript nuk është e vështirë. Në fund të fundit, edhe kur vendosni gjatësinë, duhet të hiqni përbërës "shtesë" prej saj. Kjo çon në opsionin e pastrimit të grupit. Nëse për ndonjë arsye ndryshorja e caktuar e një grupi të ri bosh nuk është e kënaqshme dhe është e nevojshme të rivendosni atë aktual, mjafton t'i caktoni vlerën zero cilësisë së gjatësisë së tij.

metodat unshift, shift, pop dhe push

Megjithëse komponentët e grupit modifikohen manualisht, shumë njerëz rekomandojnë përdorimin e metodave të integruara për këtë. Është kjo nuancë që garanton vlerën e saktë të cilësisë së gjatësisë dhe mungesën e boshllëqeve në grup. Nga rruga, cilësia e saktë e gjatësisë do të korrespondojë me numrin e komponentëve.

Metoda e shtytjes i zhvendos pjesët e kaluara në fund të grupit. Metoda pop rikthen komponentin pasues dhe e heq atë.

Në përgjithësi, në Internet Explorer më i ri se versioni i tetë, unshift mund të kthehet i papërcaktuar; në shfletues të tjerë, një vlerë e re e gjatësisë. Pra, është më mirë të mos mbështeteni në vlerën e kthyer nga unshift.

Shtimi dhe eliminimi i pjesëve në mes të një grupi

Nëse më duhet të fshij një grup JavaScript, çfarë duhet të bëj? Dihet se metoda e bashkimit ka nënshkrimin Array.prototype.splice.

Ai heq komponentët e deleteCount nga grupi, duke filluar me treguesin e fillimit. Nëse kalohen më shumë se dy argumente, atëherë të gjitha argumentet pasuese në grup vendosen në vend të atyre të eliminuar. Nëse fillimi është negativ, atëherë indeksi nga i cili do të rifillojë tërheqja do të jetë i barabartë me gjatësinë + fillimin. Vargu kthehet nga elementët e hequr.

Në fakt, duke përdorur metodën e bashkimit, mund të hiqni komponentët nga mesi i grupit ose të shtoni ndonjë numër përbërësish kudo në grup.

Në versionin më të thjeshtë, nëse duhet të hiqni një komponent me indeksin i, duhet të kërkoni metodën e bashkimit nga grupi me parametrat i dhe 1.

Në parim, parametri i dytë i metodës së bashkimit është opsional, por sjellja e një funksioni me një argument është e ndryshme në çdo shfletues.

Për shembull, në Firefox, në variantet më të fundit të Opera, në Safari dhe në Chrome, të gjitha detajet deri në fund të grupit do të hiqen.

Asnjë komponent nuk do të eliminohet në IE. Në variacionet e para të Opera, është e pamundur të parashikohet sjellja - do të hiqet një pjesë me fillimin e indeksit - 1. Prandaj, gjithmonë duhet të kaloni të paktën dy komponentë në këtë metodë.

Çelësat

Natyrisht, kur mësoni JavaScript, duhet të keni parasysh edhe vargjet shoqëruese, siç u përmend më herët. Ky është një lloj informacioni abstrakt (një ndërfaqe në një ruajtje të të dhënave), i cili ju lejon të ruani çifte të formës "(çelës, vlerë)" dhe të mbështesni operacionet e shtimit të një çifti, si dhe fshirjen dhe kërkimin e një çifti. me çelës:

GJEJ (çelës).

INSERT (vlera, çelësi).

HEQ (çelës).

Supozohet se dy çifte me çelësa të ngjashëm nuk mund të ruhen në një grup shoqërues. Në një çift k + v, v quhet vlera e lidhur me çelësin k. Semantika dhe emrat e operacioneve të mësipërme mund të jenë të ndryshme në zbatime të ndryshme të grupeve të tilla.

Kështu, veprimi FIND (çelësi) kthen vlerën e lidhur me çelësin e dhënë, ose ndonjë objekt specifik UNDEF që tregon se nuk ka asnjë vlerë të lidhur me çelësin e dhënë. Dy veprimet e tjera nuk kthejnë asgjë (përveç nëse operacioni ishte i suksesshëm).

Në përgjithësi, nga pikëpamja e ndërfaqes, është e përshtatshme të konsiderohet një grup shoqërues si një grup i thjeshtë në të cilin jo vetëm numrat e plotë, por edhe vlerat e llojeve të tjera - për shembull, vargjet - mund të përdoren si indekse.

Nga rruga, mbështetja për grupe të tilla është e disponueshme në shumë gjuhë programimi të nivelit të lartë, të tilla si PHP, Perl, Ruby, Python, Tcl, JavaScript dhe të tjera. Për gjuhët që nuk kanë mjete të integruara për të punuar me grupe shoqëruese, janë krijuar një numër kolosal zbatimesh në formën e bibliotekave.

Një shembull i një grupi shoqërues është një direktori telefonike. Në këtë version, kuptimi është kompleksi "F. I. O. + adresa”, dhe çelësi është numri i telefonit. Një numër telefoni ka një pronar, por një person mund të zotërojë disa numra.

Zgjerime shoqëruese

Duhet të theksohet se zgjerimet më të famshme përfshijnë sa vijon:

  • SEDO - "kaloni" të gjitha çiftet e ruajtura.
  • CLEAR - hiqni të gjitha të dhënat.
  • MIN - gjeni çiftin me vlerën më të vogël të çelësit.
  • MAX - gjeni çiftin me vlerën kryesore më të madhe.

Dy opsionet e fundit kërkojnë që çelësat të tregojnë veprimin e krahasimit.

Zbatimet e vargjeve asociative

Ka shumë zbatime të ndryshme të një grupi shoqërues. Zbatimi më i zakonshëm mund të bazohet në një grup të thjeshtë përbërësit e të cilit janë çifte (vlera, çelësi). Për të përshpejtuar operacionet e kërkimit, mund të porosisni përbërësit e këtij grupi me çelës dhe të kryeni kërkimin duke përdorur Por kjo do të rrisë periudhën kohore të nevojshme për të shtuar një çift të ri, pasi do të jetë e nevojshme të "ndahen" përbërësit e grup për të paketuar një rekord të ri në qelizën boshe që shfaqet.

Implementimet më të njohura janë ato të bazuara në pemë të ndryshme kërkimi. Për shembull, në një lexues tipik C++ STL, kontejneri i hartës zbatohet bazuar në një pemë sofër të zezë. Stilet Ruby, Tcl, Python përdorin një lloj tabele hash. Ka zbatime të tjera.

Në përgjithësi, çdo zbatim ka disavantazhet dhe avantazhet e veta. Është e rëndësishme që të tre veprimet të kryhen si mesatarisht ashtu edhe në nuancën më të keqe gjatë periudhës O(log n), ku n është numri aktual i çifteve që ruhen. Për pemët e kërkimit të përputhur (përfshirë pemët e kuqe të zezë), ky kusht plotësohet.

Implementimet e bazuara në tabela hash dihet se kanë një kohë mesatare prej O(1), e cila është më e mirë se zbatimet e bazuara në pemë kërkimi. Sigurisht, kjo nuk garanton ekzekutimin me shpejtësi të lartë të operacioneve individuale: koha më e keqe e INSERT shënohet si O(n). Procesi INSERT funksionon për një kohë të gjatë kur faktori i mbushjes arrin pikën më të lartë dhe indeksi i tabelës hash duhet të rindërtohet.

Nga rruga, këto lista hash janë të këqija, sepse në bazë të tyre është e pamundur të kryhen veprime të shpejta shtesë MAX, MIN dhe një algoritëm për kalimin e të gjitha çifteve të ruajtura në rend zbritës ose në rritje të çelësave.

  • Përkthimi

Shumica e aplikacioneve të zhvilluara këto ditë kërkojnë ndërveprim me një lloj grupi të dhënash. Trajtimi i elementeve në koleksione është një operacion i zakonshëm që ndoshta e keni hasur. Kur punoni, për shembull, me vargje, mundeni, pa menduar, të përdorni një cikli të rregullt for, i cili duket diçka si kjo: për (var i=0; i< value.length; i++){} . Однако, лучше, всё-таки, смотреть на вещи шире.

Supozoni se duhet të shfaqim një listë produktesh dhe, nëse është e nevojshme, ta ndajmë atë në kategori, ta filtrojmë, të bëjmë një kërkim në të, të modifikojmë këtë listë ose elementet e saj. Ndoshta ju duhet të kryeni shpejt disa llogaritje që përfshijnë elementet e një liste. Le të themi se duhet të shtoni diçka me diçka, të shumëzoni diçka me diçka. A është e mundur të gjesh mjete në JavaScript që ju lejojnë të zgjidhni probleme të tilla më shpejt dhe më lehtë sesa të përdorni një lak të rregullt për?

Në fakt, ka lehtësira të tilla në JavaScript. Disa prej tyre janë diskutuar në material, përkthimin e të cilit ju paraqesim sot në vëmendje. Në veçanti, po flasim për operatorin spread, for...of ciklin dhe metodat include(), some(), every(), filter(), map() dhe reduce(). Këtu do të flasim kryesisht për vargje, por teknikat e diskutuara këtu janë përgjithësisht të përshtatshme për të punuar me lloje të tjera objektesh.

Duhet të theksohet se rishikimet e qasjeve moderne për zhvillimin e JS zakonisht përfshijnë shembuj të përgatitur duke përdorur funksionet me shigjeta. Ndoshta nuk i përdorni ato shumë shpesh - ndoshta sepse nuk ju pëlqejnë, ndoshta sepse nuk dëshironi të shpenzoni shumë kohë duke mësuar diçka të re, ose ndoshta thjesht nuk janë të përshtatshme për ju. Prandaj, këtu, në shumicën e situatave, do të shfaqen dy opsione për të kryer të njëjtat veprime: përdorimi i funksioneve të rregullta (ES5) dhe përdorimi i funksioneve me shigjeta (ES6). Për ata që janë të rinj në punën me funksionet me shigjeta, funksionet me shigjeta nuk janë ekuivalente me deklaratat e funksioneve dhe shprehjet e funksionit. Ju nuk duhet të zëvendësoni njërën me tjetrën. Në veçanti, kjo për faktin se fjala kyçe kjo sillet ndryshe në funksionet e zakonshme dhe me shigjeta.

1. Operatori i zgjerimit

Operatori spread ju lejon të "zgjeroni" vargjet duke zëvendësuar elementet e tyre në vend të vargjeve në vendin ku përdoret ky operator. Një qasje e ngjashme është propozuar për fjalë për fjalë objektesh.

▍Përparësitë e operatorit të zgjerimit

  • Kjo është një mënyrë e thjeshtë dhe e shpejtë për të "tërhequr" elementë individualë nga një grup.
  • Ky operator është i përshtatshëm për të punuar me vargje dhe literale objektesh.
  • Kjo është një metodë e shpejtë dhe intuitive për të punuar me argumentet e funksionit.
  • Operatori i zgjerimit nuk zë shumë hapësirë ​​në kod - duket si tre pika (...).

▍Shembull

Le të themi se ju keni për detyrë të rendisni ëmbëlsirat tuaja të preferuara pa përdorur një lak. Duke përdorur operatorin e zgjerimit, kjo bëhet si kjo:

2. Loop për… e

Deklarata for…of është krijuar për të përshkuar objekte të përsëritura. Ai u jep akses elementeve individuale të objekteve të tilla (në veçanti, elementeve të grupit), gjë që, për shembull, u lejon atyre të modifikohen. Mund të konsiderohet një zëvendësim për ciklin e rregullt for.

▍Përparësitë e ciklit for…e

  • Kjo është një mënyrë e thjeshtë për të shtuar ose përditësuar artikujt e koleksionit.
  • Cikli for…of ju lejon të kryeni llogaritje të ndryshme duke përdorur elementë (përmbledhje, shumëzim, e kështu me radhë).
  • Është i përshtatshëm për t'u përdorur kur duhet të kontrolloni ndonjë kusht.
  • Përdorimi i tij çon në shkrimin e kodit më të pastër dhe më të lexueshëm.

▍Shembull

Le të themi se keni një strukturë të dhënash që përshkruan përmbajtjen e një kutie veglash dhe dëshironi t'i shfaqni ato mjete. Ja se si ta bëni këtë duke përdorur një lak for...of:

3. Metoda përfshin().

Metoda include() përdoret për të kontrolluar praninë e një elementi të caktuar në një koleksion, në veçanti, për shembull, një varg të caktuar në një grup që përmban vargje. Kjo metodë kthen true ose false në varësi të rezultateve të testit. Kur e përdorni, ia vlen të merret parasysh se është i ndjeshëm ndaj rasteve. Nëse, për shembull, koleksioni përmban elementin e vargut SCHOOL , dhe përfshin kontrollet () për praninë e tij duke përdorur shkollën e vargjeve, metoda do të kthehet false.

▍Përparësitë e metodës include().

  • Metoda include() është e dobishme në krijimin e mekanizmave të thjeshtë të marrjes së të dhënave.
  • Ai i jep zhvilluesit një mënyrë intuitive për të përcaktuar praninë e të dhënave të caktuara në një grup.
  • Është i përshtatshëm për t'u përdorur në shprehje të kushtëzuara për të modifikuar, filtruar elementë dhe për të kryer operacione të tjera.
  • Përdorimi i tij çon në përmirësimin e lexueshmërisë së kodit.

▍Shembull

Supozoni se keni një garazh, të përfaqësuar nga një grup me një listë makinash dhe nuk e dini nëse një makinë e caktuar ndodhet në këtë garazh apo jo. Për të zgjidhur këtë problem, duhet të shkruani kodin që ju lejon të kontrolloni nëse një makinë është në garazh. Le të përdorim metodën include():

4. metoda some().

Metoda some() ju lejon të kontrolloni nëse disa nga elementët që kërkoni ekzistojnë në grup. Bazuar në rezultatet e kontrollit, ai kthen true ose false. Është e ngjashme me metodën include() më sipër, me përjashtim të faktit që argumenti i tij është një funksion dhe jo, për shembull, një varg i rregullt.

▍Përparësitë e metodës some().

  • Metoda some() na lejon të kontrollojmë nëse grupi përmban të paktën një nga elementët që na interesojnë.
  • Ai kryen një test të gjendjes duke përdorur funksionin e kaluar tek ai.
  • Kjo metodë është e përshtatshme për t'u përdorur.

▍Shembull

Supozoni se jeni pronar i një klubi, dhe në përgjithësi, nuk jeni të interesuar se kush vjen saktësisht në klubin tuaj. Megjithatë, disa vizitorë nuk lejohen të hyjnë në klub sepse janë të prirur ndaj konsumimit të tepruar të pijeve alkoolike, të paktën nëse e gjejnë veten vetë në lokalin tuaj dhe nuk ka njeri me ta për t'u kujdesur për ta. Në këtë rast, një grup vizitorësh mund të hyjnë në klub vetëm nëse të paktën njëri prej tyre është të paktën 18 vjeç. Për të automatizuar këtë lloj kontrolli, ne do të përdorim metodën some(). Më poshtë aplikimi i tij është demonstruar në dy versione.

ES5

ES6

5. Metoda Çdo().

Metoda every() përsëritet përmes një grupi dhe teston çdo element kundrejt një kushti të caktuar, duke e kthyer true nëse të gjithë elementët e grupit përputhen me kushtin, dhe false ndryshe. Mund të shihni se është e ngjashme me metodën some().

▍Përparësitë e metodës every().

  • Metoda every() ju lejon të kontrolloni nëse të gjithë elementët e një grupi plotësojnë një kusht.
  • Kushtet mund të vendosen duke përdorur funksionet.
  • Promovon një qasje deklarative ndaj programimit.

▍Shembull

Le të kthehemi te shembulli i mëparshëm. Aty lejuat vizitorët nën 18 vjeç në klub, por dikush shkroi një deklaratë në polici, pas së cilës u gjendët në një situatë të pakëndshme. Pasi gjithçka u rregullua, ju vendosët që nuk ju nevojiteshin të gjitha këto dhe shtrënguat rregullat për të vizituar klubin. Tani një grup vizitorësh mund të hyjnë në klub vetëm nëse secili anëtar i grupit është të paktën 18 vjeç. Si herën e kaluar, ne do të shqyrtojmë zgjidhjen e problemit në dy versione, por këtë herë do të përdorim metodën every().

ES5

ES6

6. metoda filter().

Metoda filter() ju lejon të krijoni, bazuar në një grup të caktuar, një grup të ri që përmban vetëm ato elemente të grupit origjinal që plotësojnë një kusht të caktuar.

▍Përparësitë e metodës filter().

  • Metoda filter() shmang modifikimin e grupit origjinal.
  • Kjo ju lejon të hiqni qafe elementët e panevojshëm.
  • Ai përmirëson lexueshmërinë e kodit.

▍Shembull

Supozoni se ju duhet të zgjidhni nga një listë çmimesh vetëm ato që janë më të mëdha ose të barabarta me 30. Le të përdorim metodën filter() për të zgjidhur këtë problem.

ES5

ES6

7. Metoda Map().

Metoda map() është e ngjashme me metodën filter() në atë që kthen gjithashtu një grup të ri. Megjithatë, përdoret për të modifikuar elementët e grupit origjinal.

▍Përparësitë e metodës map().

  • Metoda map() shmang nevojën për të ndryshuar elementet e grupit origjinal.
  • Mund të përdoret për të modifikuar me lehtësi elementët e grupit.
  • Ai përmirëson lexueshmërinë e kodit.

▍Shembull

Le të themi se keni një listë produktesh me çmime. Menaxheri juaj ka nevojë për një listë të re të produkteve, çmimet e të cilave janë ulur me 25%. Le të përdorim metodën map() për të zgjidhur këtë problem.

ES5

ES6

8. Metoda e reduktimit ().

Metoda Reduce(), në formën e saj më të thjeshtë, ju lejon të përmblidhni elementet e vargjeve numerike. Me fjalë të tjera, ai redukton grupin në një vlerë të vetme. Kjo ju lejon ta përdorni për të kryer llogaritje të ndryshme.

▍Përparësitë e metodës reduce().

  • Duke përdorur metodën reduce(), mund të llogarisni shumën ose mesataren e elementeve të një grupi.
  • Kjo metodë shpejton dhe thjeshton llogaritjet.

▍Shembull

Le të themi se duhet të llogaritni shpenzimet tuaja për javën, të cilat ruhen në një grup. Le ta zgjidhim këtë problem duke përdorur metodën reduce().

ES5

ES6

Shto etiketa

Vargjet mund të manipulohen përmes metodave të ndryshme të ofruara nga konstruktori Array.

Metodat Pop/shty dhe Shift/Unshift

Le të shohim metodat pop() dhe push(). Këto metoda ju lejojnë të punoni me vargje sikur të ishin rafte. Një pirg është një strukturë të dhënash në të cilën qasja në elementë organizohet sipas parimit LIFO (anglisht: i fundit në - i pari jashtë, "i fundit në - i pari jashtë"). Parimi i funksionimit të pirgut mund të krahasohet me një pirg pllakash: për të marrë të dytin nga lart, duhet të hiqni pjesën e sipërme. Si funksionon është treguar në figurë:

Dhe kështu le t'i kthehemi shikimit të metodave push() dhe pop(). Metoda push() shton një ose më shumë elementë të rinj në fund të grupit dhe kthen gjatësinë e tij të re. metoda pop() - heq elementin e fundit të grupit, zvogëlon gjatësinë e grupit dhe kthen vlerën që ka hequr. Vlen të përmendet se të dyja këto metoda modifikojnë grupin në vend, në vend që të krijojnë një kopje të modifikuar të tij.

Var foo = ; // foo: foo.shty (1,2); // foo: Kthen 2 foo.pop(); // foo: Kthen 2 foo.push(3); // foo: Kthen 2 foo.pop(); // foo: Kthen 3 foo.push(); // foo: ] Kthen 2 foo.pop() // foo: Kthen foo.pop(); // foo: Kthen 1 var fruta = ["dardha", "banane", "mollë"]; var picked = fruta.pop(); document.write("Ti zgjodhe timin" + zgjedhur); Provoni »

Metodat shift() dhe unshift() sillen pothuajse njësoj si pop() dhe push(), me përjashtim të faktit se ato futin dhe heqin elementet në fillim të grupit. Metoda unshift() i zhvendos elementet ekzistuese në indekse më të mëdha për të lënë vend për elementë të rinj, shton një ose më shumë elementë në fillim të grupit dhe kthen gjatësinë e re të grupit. Metoda shift() heq elementin e parë të një grupi dhe kthen vlerën e tij, duke zhvendosur të gjithë elementët pasues për të zënë hapësirën e lirë në fillim të grupit.

Var f = ; // f: f.unshift(1); // f: Kthimet: 1 f.unshift(22); // f: Kthimet: 2 f.shift(); // f: Kthimet: 22 f.unshift(3,); // f:,1] Kthen: 3 f.shift(); // f:[,1] Kthen: 3 f.shift(); // f: Kthen: f.shift(); // f: Kthimet: 1

metodë e bashkimit

Metoda Array.join() përdoret për të bashkuar elementet e një vargu në një varg. Metodës mund t'i kalohet një argument opsional i vargut, i cili do të përdoret për të ndarë elementët në varg. Nëse delimituesi nuk është specifikuar, karakteri i paracaktuar kufizues kur thirret metoda do të jetë presje.

Var a = ["Era", "Shi", "Zjarri"]; var myVar1 = a.join(); //"Era,shiu,zjarri" var myVar2 = a.join(", "); //"Era, shiu, zjarri" var myVar3 = a.join(" + "); //Dokumenti "Era + Shi + Zjarri".write(myVar1 + "
" + myVar2 + "
" + myVar3); Provo"

Metoda Array.join() është e kundërta e metodës String.split(), e cila krijon një varg duke ndarë një varg në fragmente.

metodë e kundërt

Metoda Array.reverse() e kthen rendin e elementeve në një grup dhe kthen një grup me elementët e riorganizuar. Kjo metodë nuk krijon një grup të ri me elementë të rirenditur, por i rirendit ato në një grup ekzistues.

Var myArr = ["një", "dy", "tre"]; dokument.shkruaj(myArr.reverse()); Provoni »

metoda concat

Metoda Array.concat() krijon dhe kthen një grup të ri që përmban elementet e grupit origjinal në të cilin është thirrur concat(), të shtuar në mënyrë sekuenciale me vlerat e të gjitha argumenteve të kaluara në concat(). Nëse ndonjë nga këto argumente është në vetvete një grup, atëherë të gjithë elementët e tij do të shtohen. Emrat e vargjeve përdoren si argumente dhe specifikohen në rendin në të cilin elementet e tyre duhet të kombinohen.

Var a = ; a.concat(4, 5) //Kthen a.concat(); //e njëjta gjë - kthen a.concat(,) //Kthim

metoda e renditjes

Metoda Array.sort() rendit elementet e grupit në vend dhe kthen grupin e renditur. Nëse metoda sort() thirret pa argument, ajo i rendit elementet e grupit sipas rendit alfabetik (përkohësisht i konverton ato në vargje për të kryer krahasimin). Metoda sort() mund të marrë një funksion krahasimi si argument, i cili përcakton rendin e renditjes së elementeve.

Var a = ["Kivi", "Portokalli", "Dardha"]; a.sort(); var s = a.join(", "); //Portokalli, Dardha, Dokumenti i Kivit. Shkruaj(t); //shembull me numra var myArr = ; myArr.sort(); dokument.shkruaj(myArr); //1,10,2 Provoni »

Ju ndoshta prisni të shihni një rezultat paksa të ndryshëm nga renditja e numrave. Ky renditje ndodh sepse metoda sort() rendit elementet duke i kthyer ato në vargje. Prandaj, rendi i tyre rezulton të jetë varg - në fund të fundit, "10"

Për të renditur në rend të ndryshëm nga alfabetik, ju mund t'i kaloni një funksion krahasimi si argument metodës sort(). Sidoqoftë, duhet të kihet parasysh se funksionin e krahasimit do t'ju duhet ta shkruani vetë. Ky funksion duhet të ketë dy parametra sepse përcakton se cili nga dy argumentet e tij duhet të shfaqet i pari në listën e renditur. Për ta bërë më të lehtë kuptimin dhe shkrimin e një funksioni të tillë, ekzistojnë disa rregulla me të cilat do të përcaktohet rendi i elementeve:

  • Nëse argumenti i parë duhet të vijë përpara të dytit, funksioni i krahasimit kthen një numër negativ (nëse a
  • Nëse argumenti i parë duhet të ndjekë të dytin, atëherë funksioni i krahasimit kthen një numër pozitiv (nëse a > b)
  • Nëse dy vlera janë ekuivalente (d.m.th. renditja e tyre nuk është e rëndësishme), funksioni i krahasimit kthen 0 (nëse a == b)

Për krahasim, funksioni përdor elementet e grupit si argumentet e tij:

Funksioni foo(a,b) ( //përcakto funksionin e kontrollit nëse (a b) kthen 1; kthen 0; //nëse a == b) var a = ; a. sort (foo); //vetëm emri i funksionit kalohet si një dokument argument.write(a.join(", ")); //shkruani të njëjtën gjë më shkurt var a = ; a.sort(funksioni(a,b) ( //përdor funksionin anonim kthen a - b; //funksioni kthen vlerën 0 )); dokument.shkruaj(a); //1,2,5,10 Provoni »

Hyrja e parë në shembull është shkruar në këtë mënyrë për ta bërë më të lehtë për të kuptuar se si funksionon. Vini re se sa i përshtatshëm është të përdorni një funksion anonim në fragmentin e dytë. Quhet vetëm një herë, kështu që nuk ka nevojë t'i jepet një emër.

Shënim: Nëse ka elementë të papërcaktuar në grup, ato zhvendosen në fund të grupit.

metoda e fetës

Metoda Array.slice() përdoret për të kopjuar një seksion të caktuar nga një grup dhe kthen një grup të ri që përmban elementët e kopjuar. Vargu origjinal nuk ndryshon.

Sintaksa e metodës:

ArrayName.slice (fillimi, fundi);

Emri_array duhet të zëvendësohet me emrin e grupit nga i cili dëshironi të nxirrni një grup specifik elementësh për grupin e ri. Metoda merr dy argumente që specifikojnë fillimin dhe fundin e grupit të kthyer. Metoda kopjon një seksion të grupit, duke filluar nga fillimi në fund, duke mos përfshirë fundin. Nëse jepet vetëm një argument, grupi i kthyer do të përmbajë të gjithë elementët nga pozicioni i specifikuar deri në fund të grupit. Ju mund të përdorni indekse negative - ato numërohen nga fundi i grupit.

Var arr = ; arr.fetë (0,3); //Kthen arr.slice(3); //Kthen arr.slice(1,-1); //Kthen arr.slice(-3,-2); //Kthimet

metoda e bashkimit

Metoda Array.splice() është një metodë universale për të punuar me vargje. Ai modifikon grupin në vend në vend që të kthejë një grup të ri të modifikuar siç bëjnë metodat slice() dhe concat(). Metoda e bashkimit mund të heqë elementë nga një grup, të futë elementë të rinj, të zëvendësojë elementët - një nga një dhe njëkohësisht. Ai kthen një grup të përbërë nga elementët e hequr, nëse asnjë element nuk është hequr, ai do të kthejë një grup bosh.

Sintaksa e metodës:

Emri_array.splice(indeksi, sasia, elem1, ..., elemN);

Argumenti i parë specifikon indeksin në grup në të cilin do të fillojë futja ose heqja e elementeve. Argumenti i dytë specifikon numrin e elementeve që duhet të hiqen nga grupi duke filluar nga indeksi i specifikuar në argumentin e parë; nëse argumenti i dytë është 0, atëherë asnjë element nuk do të hiqet. Nëse argumenti i dytë hiqet, të gjithë elementët e grupit nga indeksi i specifikuar deri në fund të grupit hiqen. Kur përdorni një numër pozicioni negativ, elementët do të numërohen nga fundi i grupit.

Var fruta = ["portokall", "mollë", "dardha", "rrush"]; var i fshirë = frutat.splice(2,2); //kthehet ["dardha", "rrushi"] dokumenti.shkruaj(fshihet); var arr = ; arr.splice(4); //Kthimet ; vargu u bë: arr.splice(1,2); //Kthimet ; grupi u bë: arr.splice(1,1); //Kthimet ; grupi u bë: Provoni »

Dy argumentet e para të metodës splice() specifikojnë elementet e grupit që do të hiqen. Këto dy argumente mund të pasohen nga çdo numër argumentesh shtesë që specifikojnë elementët që do të futen në grup, duke filluar nga pozicioni i specifikuar nga argumenti i parë.

Var fruta = ["portokall", "mollë"]; frutat.splice(2,0, "shalqinj"); //kthehet dokumenti.shkruaj(frutat); //u bë ["portokall", "mollë", "shalqi"] var arr = ; arr.splice(2,0"a","b"); //Kthimet ; u bë arr.splice(2,2,); //Kthen ["a","b"]; u bë ,3,4,5] Provoni »

Vlen të përmendet se, ndryshe nga concat(), metoda splice() nuk i ndan vargjet e kaluara si argumente në elemente individuale. Kjo do të thotë, nëse metodës i kalohet një grup për të futur, ajo fut vetë grupin, dhe jo elementet e atij grupi.

metoda toString

Metoda toString() konverton elementet e një grupi në një varg duke përdorur një presje si karakter ndarës.

Var arr = ["Qumsht","Buke","Biskota"]; var ushqim = arr.toString(); dokument.shkruaj(ushqim); //Provo qumësht, bukë, biskota »

Vini re se metoda kthen të njëjtin varg si join() kur thirret pa argumente.

indexOf dhe lastIndexOf

Metoda indexOf kthen indeksin e një elementi vlera e të cilit është e barabartë me vlerën e dhënë si argument metodës.

Sintaksa e metodave indexOf() dhe lastIndexOf():

Emri_array.indexOf(elementi_kërkimit, indeksi) emri_array.lastIndexOf(elementi_kërkimit, indeksi)

Argumenti i parë i metodës specifikon vlerën e elementit indeksi i të cilit duhet të gjendet, argumenti i dytë (opsionale) specifikon indeksin nga i cili do të fillojë kërkimi. Nëse ka disa dukuri identike, zgjidhet indeksi më i vogël (i parë). Nëse një element me vlerën e dëshiruar nuk gjendet, metoda do të kthejë -1. Brenda metodës, krahasimi i rreptë (===) përdoret për kërkim.

Var a = ; a.indeksiOf(3); //kthimi 2 a.indeksiOf(3,4); //kthimi 6 a.indeksiOf(35); //kthim -1: nuk ka asnjë element me këtë vlerë a.indexOf(2); // 1

Metoda lastIndexOf() gjithashtu kthen indeksin e elementit, vlera e të cilit është e barabartë me vlerën që i kalohet metodës si argument. I vetmi ndryshim është se metoda lastIndexOf() zgjedh indeksin më të madh (të fundit).

Var a = ; a.I funditIndeksiOf(3); //kthim 7 a.lastIndexOf(35); //kthim -1: nuk ka asnjë element me këtë vlerë a.lastIndexOf(2); // 6

Metodat iterator

Metodat e përshkruara më poshtë janë përsëritëse. Të gjithë shfletuesit modernë kanë metoda për të punuar me vargje që janë krijuar për të përsëritur mbi elementë dhe për të kryer veprime të ndryshme mbi to. Këto metoda janë përÇdo(), map(), filter(), every(), disa, reduce() dhe reduceRight().

Ata përsëriten mbi elementët e grupit duke filluar nga 0 në gjatësi - 1 dhe, nëse elementi ekziston, ia kalojnë atë funksionit të mbajtësit të kthimit të thirrjes.

per secilin

Sintaksa e metodës:

ArrayName.forEach (kthimi i thirrjes, thisArg)

Argumenti i parë specifikon funksionin e kthimit të thirrjes që metoda forEach() do të thërrasë për çdo element të grupit. Ju duhet ta shkruani vetë zbatimin e funksionit të thirrur mbajtës. Funksioni i thirrur duhet të ketë tre parametra: parametri i parë merr si argument vlerën e elementit të grupit, i dyti - indeksin e elementit dhe i treti - vetë grupin. Sidoqoftë, nëse ju duhet të përdorni vetëm vlerat e elementeve të grupit, mund të shkruani një funksion me vetëm një parametër. Argumenti i dytë - thisArg (opsionale) do të kalohet si vlerë e kësaj.

Var arr = ; funksioni foo(vlera) (var sum = vlera * kjo; kthe dokument.shkruaj(shuma + "
"); ) arr.forEach(foo, 5); //argumenti i dytë do të kalohet si vlerë e këtij //shembulli me tre parametra var a = ; a.forEach(funksion(el, idx, a) (dokument .write( "a["+idx+"] = "+el+" në ["+a+"]
"); )); Provoni »

filtër

Sintaksa e metodës:

Emri_array.filtri (kthimi i thirrjes, kyObjekt)

Metoda filter() krijon dhe kthen një grup të ri që do të përmbajë vetëm ato elemente të grupit për të cilët funksioni i kthimit të thirrjes kthen true.

Funksioni është Big(element, indeks, grup) ( //kthehet numra që janë më të mëdhenj ose të barabartë me 10 kthen (element >= 10); //nëse vlera e elementit është më e madhe ose e barabartë me 10, shprehja do të kthehet true ) var filtruar = .filter(isBig) ; //i filtruar

harta

Metoda map() krijon dhe kthen një grup të ri, i cili do të përbëhet nga rezultatet e thirrjes së funksionit callback(artiku, idx, ar) për çdo element të grupit.

Var a = ; var b = a.map(funksioni(artikull, idx, arr) (ktheje artikullin * artikull; )); // b =

çdo dhe disa

Metoda every() kthen true nëse, për të gjithë elementët e grupit, funksioni i specifikuar i përdorur për t'i kontrolluar ato kthen true.

Metoda some() kthen true nëse një ose më shumë elementë në funksionin e specifikuar kthehen true gjatë testimit.

Var a = ; a.çdo (funksion(x) (kthim x 10; )) //e vërtetë: një numër > 10

zvogëloni dhe zvogëloni E drejta

Sintaksa e metodës:

emri i grupit. reduktimi (kthimi i thirrjes, vlera fillestare) emri i grupit.reduceDjathtas (kthimi i thirrjes, Vlera fillestare)

Metoda Reduce() zbaton funksionin e specifikuar të kthimit të thirrjes në dy vlera në grup njëherësh, duke u përsëritur përmes elementeve nga e majta në të djathtë, ndërsa ruan rezultatin e ndërmjetëm.

Argumentet e funksionit të kthimit të thirrjes: (Vlera e mëparshme, Artikulli aktual, indeksi, grupi)

  • Vlera e mëparshme - rezultati i kthyer i funksionit të kthimit të thirrjes (i njohur gjithashtu si rezultati i ndërmjetëm)
  • CurrentItem - elementi aktual i grupit (elementet renditen sipas rendit nga e majta në të djathtë)
  • index - indeks i elementit aktual
  • array - grup i përpunuar

Vlera fillestare është objekti i përdorur si argumenti i parë i thirrjes së parë në funksionin e kthimit të thirrjes. E thënë thjesht, vlera e vlerës së mëparshme kur thirret për herë të parë është e barabartë me vlerën fillestare. Nëse nuk ka vlerë fillestare, atëherë është e barabartë me elementin e parë të grupit, dhe kërkimi fillon nga i dyti:

Var a = ; funksioni foo(prevNum,curNum) ( sum = prevNum + curNum; alert(sum); return sum; ) var result = a.reduce(foo, 0); dokument.shkruaj(rezultat); Provoni »

Le të shohim se si funksionon ky shembull. Argumentet e para të funksionit foo janë:

  • prevNum = 0 (pasi vlera fillestare është 0)
  • CurNum = 1 (elementi aktual është elementi i parë i grupit)

1 i shtohet numrit 0. Ky rezultat (shuma: 1) do të kalohet si prevNum herën tjetër që funksioni të ekzekutohet. Dhe kështu me radhë derisa të arrijë elementin e fundit. Rezultati i kthyer, shuma nga vrapimi i fundit, do të jetë 15 (1+2+3+4+5).

Metoda ReduceRight funksionon në mënyrë të ngjashme me metodën e reduktimit, por kalon nëpër grup nga e djathta në të majtë:

Var a = ["h", "o", "m", "e"]; shiriti i funksionit(prevStr, curItem) (kthimi prevStr + curItem; ) document.write(a.reduceRight(bar)); //emoh

Në JavaScript, si dhe në gjuhë të tjera programimi, përdoren metoda të ndryshme për të punuar me vargje.

Metodat thjeshtojnë ndërtimin e logjikës dhe zbatimin e saj në një skenar.

Më poshtë janë metodat bazë për të punuar me vargje në JS.

shtytje

Metoda push() shton një vlerë në fund të grupit.

Le të arr = ; arr.shty (312); konsol.log(arr); // →

pop

Metoda pop() heq elementin e fundit nga grupi ose kthen vlerën e tij.

Le të arr = ; arr.pop(); konsol.log(arr); // →

Duke përdorur aftësinë për të marrë vlerën e elementit të fundit të një grupi si shembull, ne mund të marrim formatin e imazhit:

Le të img = "https://example.com/img/name.png"; let format = img.split(".").pop(); konsol.log(format); // → png console.log(img.split(".")); // → ["https://shembull", "com/img/name", "png"]

i pandryshuar

Metoda unshift() shton një element në fillim të grupit.

Le të arr = ; arr.unshift(312); konsol.log(arr); // →

ndërrim

Metoda shift() heq elementin e parë nga grupi.

Le të arr = ; arr.shift(); konsol.log(arr); // → ;

Ju duhet të kuptoni se kur përdorni metodat "shift" dhe "unshift", çdo element i grupit ndryshon indeksin e tij. Kjo mund të ngadalësojë ekzekutimin e programit nëse grupi është i madh.

ndarë

Metoda split() përdoret për të transformuar një varg në një grup. Split ndan një varg sipas parametrit të specifikuar.

Le str = "Anya, Masha, Sasha, Dasha"; // ky është një varg let arr = str.split(", "); konsol.log(arr); // → ["Anya", "Masha", "Sasha", "Dasha"] është një grup

bashkohen

Metoda join() kombinon elementet e grupit në një varg duke përdorur kufizuesin e specifikuar në parametër.

Le të arr = ["Notpad++", "Sublime", "VSCode"]; // ky është një grup le str = arr.join(", "); console.log("Redaktorët për kodin: " + str); // → "Redaktuesit për kodin: Notpad++, Sublime, VSCode"

fetë

Metoda slice() krijon një grup të ri në të cilin kopjon elementet nga burimi, duke filluar nga elementi me indeksin e parametrit të parë të kaluar në metodë, tek elementi me indeksin e parametrit të dytë.

Për shembull: slice(3, 7) do të kthejë elementë me indekset 3, 4, 5, 6. Elementi me indeksin 7 nuk do të përfshihet në grup.

Nëse një parametër me vlerë negative i kalohet slice(), atëherë ai kthen një grup të ri me numrin e elementeve të specifikuar në parametër, por tashmë të marrë nga fundi i grupit origjinal.

Metoda e prerjes nuk e ndryshon grupin origjinal.

Këtu janë disa shembuj të metodës slice() në veprim:

Le të arr = ["A", "B", "C", "D", "E", "F", "G"]; // Kthen një grup që përmban elementë me indekse nga 2 në 5 console.log(arr.slice(2, 5)); // → ["C", "D", "E"] // Kthen një grup të ri që përmban elemente me indekse nga 3 në arr.length console.log(arr.slice(3)); // → ["D", "E", "F", "G"] // Kthen një kopje të grupit origjinal të konsolës.log(arr.slice()); // → ["A", "B", "C", "D", "E", "F", "G"] // Kthen një grup të ri të përbërë nga tre elementët e fundit të konsolës origjinale.log (arr.fetë (-3)); // → ["E", "F", "G"]

bashkoj

Metoda splice() modifikon përmbajtjen e një grupi duke hequr elementët ekzistues dhe/ose duke shtuar të reja.

Sintaksë:

Array.splice(fillimi, fshiniNumërimin[, artikullin1[, artikullin2[, ...]]])

Opsione:

  • filloni- Indeksi në të cilin do të fillojë ndryshimi i grupit. Nëse është më e madhe se gjatësia e grupit, indeksi real do të vendoset në gjatësinë e grupit. Nëse është negative, specifikon indeksin e elementit nga fundi.
  • fshiniNumërimin- Një numër i plotë që tregon numrin e elementeve të vjetër që do të hiqen nga grupi. Nëse deleteCount është 0, asnjë element nuk fshihet. Në këtë rast, duhet të specifikoni të paktën një element të ri. Nëse deleteCount është më i madh se numri i elementeve të mbetura në grup duke filluar nga fillimi i indeksit, atëherë të gjithë elementët deri në fund të grupit do të fshihen.
  • artikulli N- Parametrat opsionalë. Elementet që do të shtohen në grup. Nëse nuk specifikoni ndonjë element, splice() thjesht do të heqë elementet nga grupi.

Vlera e kthimit

Përshkrim

Nëse numri i elementeve të specifikuar për t'u futur është i ndryshëm nga numri i elementeve që do të hiqen, vargu do të ndryshojë gjatësinë pas thirrjes.

Let arr = ["Barca", "Shakhtar", "Manchester United", "Milan", "Real", "Ajax", "Juventus"]; le nax = arr.splice(2, 3); arr.splice(2, 3); konsol.log(nax); // → ["Manchester United", "Milan", "Real"] console.log(arr); // → ["Barca", "Shakhtar"] arr.splice(1, 0, "Zenit", "CSKA", "Spartak"); konsol.log(arr); // → [Barça, Zenit, CSKA, Spartak, Shakhtar]

e kundërta

Metoda reverse() e kthen rendin e elementeve të grupit. Si rezultat, elementi i parë i grupit bëhet i fundit, dhe elementi i fundit bëhet i pari.

Le të arr = ; console.log(arr.reverse()); // → console.log(["Alice", "BG", "GO", "DDT"].reverce()); // → ["DDT", "GO", "BG", "Alice"]

harta

Metoda map() kalon nëpër elementet e grupit, duke kryer veprime të specifikuara mbi to dhe kthen një kopje të grupit me elementët e ndryshuar.

Në shembullin e mëposhtëm, secilit element të grupit shtojmë vlerën e indeksit të këtij elementi (7 + 0, 2 + 1, 15 + 2, 4 + 3, 31 + 4):

Le të arr = ; le testMap = arr.map((element, indeks) => element + indeks); console.log (testMap); //

ose shumëzojeni secilën vlerë të grupit, për shembull, me 12

Le të arr = ; le testMap = arr.map(a => a * 12); console.log (testMap); // →

filtër

Metoda filter() përdoret për të filtruar vargje. Ai përsëritet përmes grupit, duke kthyer vetëm ata elementë që kalojnë një kusht të caktuar.

Për shembull, le të filtrojmë vlerat e një grupi numrash, duke lënë vetëm ato që janë më të mëdha se 21

Le të arr = ; le testFilter = arr.filter(element => element > 21); console.log (testFilter); // →

Ju lutemi vini re se 21 nuk ishte përfshirë në rezultatin e grupit, pasi kushti ishte që të kthehej diçka që është më e madhe se 21. Në mënyrë që 21 të përfshihet në grup, ne vendosëm kushtin si më të madh ose të barabartë me: element >= 21

reduktuar

Metoda Reduce() kalon në mënyrë sekuenciale nëpër elementet e grupit, duke grumbulluar rezultatin e ndërmjetëm sipas funksionit të specifikuar në gjendjen e funksionit. Në rezultatin përfundimtar, ai kthen vetëm një vlerë.

Kjo metodë përdoret shpesh për të gjetur shumën e të gjithë numrave në një grup. Shembull:

Le të arr = ; le të summa = arr.reduce((acc, element) => acc + element); konsol.log(shuma); // → 370

rendit

Metoda sort() përdoret për të renditur elementet e grupit sipas parametrave të specifikuar.

Shembull - le të marrim një grup numrash dhe t'i renditim në rend rritës:

Le të arr = ; le të testSortArr = arr.sort((a, b) => a - b); console.log (testSortArr); // →

përfshin

Metoda include() përcakton nëse grupi përmban një element të caktuar, duke e kthyer true ose false në varësi të tij.

Shembull i përdorimit përfshin() .

Këtu është një shprehje logjike:

Le kafshë = "qen"; nëse (kafshë == "mace" || kafshë == "qen" || kafshë == "luan" || kafshë == "kali") ( // ........ )

Duke përdorur metodën përfshin, mund ta shkruani kështu:

Le kafshë = "qen"; const animals = ["mace", "qen", "luan", "kali"]; nëse (kafshë.përfshin(kafshë)) ( // ........... )

Le të mësojmë se si të indeksojmë vargjet në js, të heqim dhe shtojmë elementet e tyre.

Një grup në JavaScript është një objekt global i krijuar për të ruajtur një listë vlerash.

Është i ngjashëm me variablat e tjerë në atë që mund të ruajë çdo lloj të dhënash. Por një grup ka një ndryshim të rëndësishëm nga një variabël: ai mund të ruajë më shumë se një element në të njëjtën kohë.

Një grup është një koleksion i renditur vlerash. Çdo vlerë quhet element dhe ka numrin e vet, të quajtur indeks.

Një element brenda një grupi mund të jetë i çdo lloji. Për më tepër, elementet e një grupi mund të jenë të llojeve të ndryshme: numra, vargje, elementë logjikë, madje edhe objekte ose vargje të tjera.

Rendi i elementeve të grupit fillon nga 0. Rezulton se grupi do të ketë gjithmonë një indeks të zhvendosur me një: elementi i parë do të ketë indeksin 0, i dyti 1, etj.

Këtu është një shembull i një grupi me elementë të llojeve të ndryshme:

Krijimi (deklarimi) i një vargu

Vargjet janë shumë të përshtatshme sepse mund të ruajnë aq të dhëna sa ju nevojitet. Madhësia maksimale e mundshme e një grupi js është 2 32 elemente.

Duhet t'i themi JavaScript se duam të krijojmë një grup. Ekzistojnë dy opsione për këtë: vlera në kllapa katrore ose fjala kyçe e re.

Shënim i shkurtër: duke përdorur kllapa katrore

Një listë vlerash e ndarë me presje e mbyllur në kllapa katrore.

var myArray = [ "Jack", "Sawyer", "John", "Desmond"];

Përmbajtja e grupit përcaktohet nga ajo që është midis kllapave katrore. Çdo vlerë ndahet me presje.

Vlerat përcaktohen në të njëjtën mënyrë si variablat e thjeshtë, domethënë, vargjet duhet të deklarohen të mbyllura në thonjëza, etj.

Për të deklaruar një grup bosh, lini kllapat bosh:

var myArray = ;

Hyrja e gjatë: duke përdorur konstruktorin Array().

var lostArray = grup i ri ("Jack", "Sawyer", "John", "Desmond"); var twinPeaksArray = grup i ri ("Laura", 2, ["Bob", "Leland", "Dale"]);

Fjala kyçe e re i thotë JavaScript të krijojë një grup të ri, vlerat e të cilit kalohen si parametra.

Nëse e dini paraprakisht se sa elementë do të jenë në grupin tuaj, mund ta kaloni menjëherë këtë vlerë në konstruktor.

var myArray = Array i ri(80);

Shprehja e mësipërme do të krijojë një grup bosh të përbërë nga 80 lojëra elektronike me vlera të papërcaktuara.

Deklarimi i një grupi bosh:

var myArray = grup i ri();

Qasja në elementët e grupit

Duke përdorur indeksin e secilit element, mund të punoni me çdo të dhënë në grup, duke e aksesuar atë duke përdorur operatorin:

var myArray = ["Jack", "Sawyer", "John", "Desmond"]; console.log (myArray); // Printon "Jack" console.log(myArray); // Printon "Desmond"

Një grup mund të ketë disa nivele, domethënë, çdo element mund të jetë në vetvete një grup. Rezultati do të jetë një grup dy-dimensional js. Si mund t'i qasemi këtyre grupeve që ndodhen brenda të tjerëve - " vargjeve shumëdimensionale»?

Si shembull, le të shqyrtojmë një grup që përfaqëson një familje. Fëmijët nga kjo familje regjistrohen në një grup të veçantë brenda atij kryesor:

var familyArray = ["Marge", "Homer", ["Bart", "Lisa", "Maggie"]];

Mund ta imagjinoni kështu:

Për t'iu referuar vlerës "Lisa":

var lisa = FamilyArray; konsol.log(lisa); // shfaq "Lisa"

Kjo mund të vazhdohet pothuajse për një kohë të pacaktuar, gjë që ju lejon të ruani grupet e të dhënave të mbivendosura në grupe dhe t'i aksesoni ato duke përdorur indekse.

Shtimi i elementeve në një grup

Ne kuptuam se si të aksesojmë elementët e grupit duke përdorur indekset e tyre përkatëse. Në mënyrë të ngjashme, ju mund të shtoni (ose ndryshoni) elementë duke deklaruar, për shembull:

var myArray = ["Kate", "Sun"]; myArray = "Xhulieta"; console.log (myArray); // Printon "Kate, Sun, Juliet"

Çfarë ndodh nëse deklaroj një element me një indeks që nuk ka elementë të tjerë përpara tij? Vetë grupi do të krijojë të gjithë elementët që mungojnë dhe do t'u caktojë atyre vlerën e papërcaktuar:

var myArray = ["Kate", "Sun"]; myArray = "Xhulieta"; console.log (myArray.length); // Printon "6" console.log(myArray); // Printon ["Kate", "Sung", e papërcaktuar, e papërcaktuar, e papërcaktuar, "Juliet"]

Mund të zbuloni se sa është gjatësia e një grupi js duke përdorur veçorinë gjatësi. Në shembullin e mësipërm, ka gjashtë elementë në grup, dhe tre prej tyre nuk u është dhënë një vlerë - ato janë shënuar si të papërcaktuara.

metoda push().

Duke përdorur metodën push(), mund të shtoni një ose më shumë elementë në një grup js. Push() pranon një numër të pakufizuar parametrash, të gjithë do të shtohen në fund të grupit.

var myArray = ["Kate", "Sut"]; myArray.push ("Xhulieta"); // Shton elementin "Juliet" në fund të grupit myArray.push("Libby", "Shannon"); // Shton elementet "Libby" dhe "Shannon" në fund të grupit të konsolës.log(myaArray ); // Printon ["Kate", "Së shpejti", "Juliet", "Libby", "Shannon"]

metodë unshift().

Metoda unshift() funksionon njësoj si push(), përveçse shton elemente në fillim të grupit.

var myArray = ["Kate", "Sun"]; myArray.unshift("Xhulieta"); // Shton elementin "Juliet" në fillim të grupit myArray.unshift("Libby", "Shannon"); // Shton elementet "Libby" dhe "Shannon" në fillim të panelit të panelit.log(myArray); // Daljet ["Libby", "Shannon", "Juliet", "Kate", "Së shpejti"]

Heqja e elementeve të vargut

metodat pop() dhe shift().

Metodat pop() dhe shift() heqin elementin e fundit dhe të parë të një grupi, përkatësisht:

var myArray = ["Jack", "Sawyer", "John", "Desmond", "Kate"]; myArray.pop(); // Heq elementin "Kate" myArray.shift(); // Heq elementin "Jack" console.log(myArray); // Printon ["Sawyer", "John", "Desmond"]

metoda splice().

Duke përdorur metodën splice(), ju mund të hiqni ose shtoni elementë në një grup, duke specifikuar me saktësi indeksin e elementeve.

Në shembullin e mëposhtëm, metoda splice() shton dy elementë duke filluar nga indeksi 2 ( pra nga elementi i tretë):

var fruitArray = ["mollë", "pjeshkë", "portokall", "limon", "lime", "qershi"]; fruitArray.splice(2, 0, "melon", "banane"); console.log (fruitArray); // Daljet ["mollë", "pjeshkë", "pjepër", "banane", "portokall", "limon", "bli", "qershi"]

Parametri i parë i metodës splice() është indeksi. Ai tregon se në çfarë pozicioni duhet të shtohen/hiqen elementët. Në shembullin tonë, ne zgjodhëm indeksin 2 ( do të thotë "portokalli").

Parametri i dytë është numri i elementeve që duhet të hiqen. Ne përcaktuam një vlerë prej 0, kështu që asgjë nuk do të fshihet.

Parametrat e mëposhtëm janë opsionale. Ata shtojnë vlera të reja në grup. Në rastin tonë, duhet të shtojmë "pjepër" dhe "banane", duke filluar me indeksin 2.

Artikujt më të mirë mbi këtë temë