Funcții Javascript pentru lucrul cu matrice. ▍Puntele forte ale metodei some(). Implementări de tablouri asociative

  • Traducere

Majoritatea aplicațiilor dezvoltate în zilele noastre necesită interacțiune cu un anumit set de date. Manipularea elementelor din colecții este o operațiune comună pe care probabil ați întâlnit-o. Când lucrați, de exemplu, cu tablouri, puteți, fără să vă gândiți, să utilizați o buclă for obișnuită, care arată cam așa: for (var i=0; i< value.length; i++){} . Однако, лучше, всё-таки, смотреть на вещи шире.

Să presupunem că trebuie să afișăm o listă de produse și, dacă este necesar, să o împărțim în categorii, să o filtram, să efectuăm o căutare pe ea, să modificăm această listă sau elementele acesteia. Poate că trebuie să efectuați rapid câteva calcule care implică elementele unei liste. Să presupunem că trebuie să adăugați ceva cu ceva, să înmulțiți ceva cu ceva. Este posibil să găsiți instrumente în JavaScript care vă permit să rezolvați astfel de probleme mai rapid și mai convenabil decât folosind o buclă for obișnuită?

De fapt, există astfel de facilități în JavaScript. Unele dintre ele sunt discutate în materialul a cărui traducere vă prezentăm astăzi atenției. În special, vorbim despre operatorul spread, bucla for...of și metodele includes(), some(), every(), filter(), map() și reduce(). Vom vorbi în mare parte despre matrice aici, dar tehnicile discutate aici sunt în general potrivite pentru lucrul cu alte tipuri de obiecte.

Trebuie remarcat faptul că recenziile abordări moderne Dezvoltarea JS include de obicei exemple pregătite folosind funcții săgeți. Poate că nu le folosiți foarte des - poate pentru că nu vă plac, poate pentru că nu doriți să petreceți prea mult timp învățând ceva nou, sau poate că nu sunt potrivite pentru dvs. Prin urmare, aici, în majoritatea situațiilor, vor fi afișate două opțiuni pentru efectuarea acelorași acțiuni: utilizarea funcțiilor obișnuite (ES5) și utilizarea funcțiilor săgeată (ES6). Pentru cei care nu lucrează cu funcții de săgeți, funcțiile de săgeți nu sunt echivalentul declarațiilor și expresiilor de funcție. Nu ar trebui să înlocuiți unul cu celălalt. În special, acest lucru se datorează faptului că în funcțiile obișnuite și săgeți cuvânt cheie aceasta se comporta diferit.

1. Operatorul de împrăștiere Operatorul de împrăștiere vă permite să „extindeți” matrice prin înlocuirea elementelor lor în loc de matrice în locul în care este utilizat acest operator. O abordare similară a fost propusă pentru literalele obiect.▍ Puncte forte operator de extensie
  • Este simplu și cale rapidă„extrageți” elementele sale individuale dintr-o matrice.
  • Acest operator este potrivit pentru lucrul cu matrice și literale obiect.
  • Aceasta este o metodă rapidă și intuitivă de lucru cu argumentele funcției.
  • Operatorul de extensie nu ocupă mult spațiu în cod - arată ca trei puncte (...).
▍Exemplu Să presupunem că vă confruntați cu sarcina de a afișa o listă cu deliciile tale preferate fără a folosi o buclă. Folosind operatorul de extensie, acest lucru se face astfel:

2. Bucla for…of Operatorul for…of este conceput pentru a traversa obiecte iterabile. Oferă acces la elemente individuale ale unor astfel de obiecte (în special, la elemente de matrice), ceea ce, de exemplu, le permite să fie modificate. Poate fi considerat un înlocuitor pentru bucla for obișnuită. ▍Puntele forte ale buclei for...of
  • Aceasta este o modalitate simplă de a adăuga sau actualiza articole de colecție.
  • Bucla for…of vă permite să efectuați diferite calcule folosind elemente (sumare, înmulțire și așa mai departe).
  • Este convenabil de utilizat atunci când trebuie să verificați orice condiții.
  • Utilizarea acestuia duce la scrierea unui cod mai curat și mai lizibil.
▍Exemplu Să presupunem că aveți o structură de date care descrie conținutul unei casete de instrumente și doriți să afișați acele instrumente. Iată cum să o faci folosind o buclă for...of:

3. Metoda includes() Metoda includes() este folosită pentru a verifica prezența unui anumit element în colecție, în special, de exemplu, linie specificăîntr-o matrice care conține șiruri. Această metodă returnează adevărat sau fals în funcție de rezultatele testului. Când îl utilizați, merită să luați în considerare faptul că este sensibil la majuscule și minuscule. Dacă, de exemplu, colecția conține elementul string SCHOOL și include() verificări pentru prezența sa pe școala string , metoda va returna false .▍Punctele forte ale metodei includes()
  • Metoda includes() este utilă în crearea unor mecanisme simple de regăsire a datelor.
  • Oferă dezvoltatorului o modalitate intuitivă de a determina prezența anumitor date într-o matrice.
  • Este convenabil să se folosească în expresii condiționale pentru a modifica, filtra elemente și a efectua alte operații.
  • Utilizarea acestuia duce la îmbunătățirea lizibilității codului.
▍Exemplu Să presupunem că aveți un garaj, reprezentat printr-o matrice cu o listă de mașini și nu știți dacă o anumită mașină se află sau nu în acest garaj. Pentru a rezolva această problemă, trebuie să scrieți un cod care vă permite să verificați dacă o mașină se află în garaj. Să folosim metoda includes():

4. Metoda Some() Metoda some() vă permite să verificați dacă unele dintre elementele pe care le căutați există în matrice. Pe baza rezultatelor verificării, returnează adevărat sau fals . Este similar cu metoda includes() de mai sus, cu excepția faptului că argumentul său este o funcție mai degrabă decât, de exemplu, un șir obișnuit.
  • Metoda some() ne permite să verificăm dacă tabloul conține cel puțin unul dintre elementele care ne interesează.
  • Efectuează un test de stare utilizând funcția transmisă acestuia.
  • Această metodă este convenabilă de utilizat.
▍Exemplu Să presupunem că ești proprietarul unui club și, în general, nu ești interesat de cine vine exact la clubul tău. Cu toate acestea, unii vizitatori nu au voie să intre în club pentru că sunt predispuși la consumul excesiv de băuturi alcoolice, cel puțin dacă se găsesc singuri în unitatea ta și nu este nimeni cu ei care să aibă grijă de ei. ÎN în acest caz, un grup de vizitatori poate intra in club numai daca cel putin unul dintre ei are cel putin 18 ani. Pentru a automatiza verificarea acest fel, să folosim metoda some(). Mai jos aplicarea sa este demonstrată în două versiuni.ES5

ES6

5. Metoda Every() Metoda every() traversează matricea și verifică fiecare element pentru conformitatea cu o anumită condiție, returnând true dacă toate elementele matricei îndeplinesc condiția și false în caz contrar. Puteți vedea că este similară cu metoda some().▍Punturile forte ale metodei every()
  • Metoda every() vă permite să verificați dacă toate elementele unui tablou îndeplinesc o condiție.
  • Condițiile pot fi setate folosind funcții.
  • Promovează o abordare declarativă a programării.
▍Exemplu Să revenim la exemplul anterior. Acolo ai permis vizitatorilor sub 18 ani să intre în club, dar cineva a scris o declarație la poliție, după care te-ai trezit într-o situație neplăcută. După ce totul a fost rezolvat, ai decis că nu ai nevoie de toate acestea și ai înăsprit regulile pentru vizitarea clubului. Acum un grup de vizitatori poate intra în club doar dacă fiecare membru al grupului are cel puțin 18 ani. Ca și data trecută, vom lua în considerare rezolvarea problemei în două versiuni, dar de data aceasta vom folosi metoda every().ES5

ES6

6. Metoda filter() Metoda filter() vă permite să creați, pe baza unui anumit tablou, un nou tablou care să conțină doar acele elemente din tabloul original care satisfac o anumită condiție.
  • Metoda filter() evită modificarea matricei originale.
  • Vă permite să scăpați de elementele inutile.
  • Îmbunătățește lizibilitatea codului.
▍Exemplu Să presupunem că trebuie să le selectați dintr-o listă de prețuri numai pe cele care sunt mai mari sau egale cu 30. Să folosim metoda filter() .ES5 pentru a rezolva această problemă

ES6

7. Metoda Map() Metoda map() este similară cu metoda filter() prin faptul că returnează și o nouă matrice. Cu toate acestea, este folosit pentru a modifica elementele matricei originale.▍Puntele forte ale metodei map()
  • Metoda map() evită nevoia de a schimba elementele matricei originale.
  • Poate fi folosit pentru a modifica în mod convenabil elementele matricei.
  • Îmbunătățește lizibilitatea codului.
▍Exemplu Să presupunem că aveți o listă de produse cu prețuri. Managerul tău are nevoie noua lista mărfuri ale căror prețuri sunt reduse cu 25%. Să folosim metoda map() .ES5 pentru a rezolva această problemă

ES6

8. Metoda reduce() Metoda reduce(), în forma sa cea mai simplă, vă permite să însumați elementele tablourilor numerice. Cu alte cuvinte, reduce matricea la o singură valoare. Acest lucru vă permite să-l utilizați pentru a efectua diverse calcule.▍Puntele forte ale metodei reduce().
  • Folosind metoda reduce(), puteți calcula suma sau media elementelor unui tablou.
  • Această metodă accelerează și simplifică calculele.
▍Exemplu Să presupunem că trebuie să calculați cheltuielile pentru săptămână, care sunt stocate într-o matrice. Să rezolvăm această problemă folosind metoda reduce() .ES5

ES6

Adaugă etichete

În acest articol ne vom uita la o matrice JavaScript și componentele sale. JavaScript este proiectat ideal pentru programare. De fapt, implementează limbajul ECMAScript (standard ECMA-262).

Unde este folosit JavaScript? Este folosit ca limbaj încorporat pentru a defini calea programului către subiectul aplicației. Poate fi găsit în browsere unde este folosit ca limbaj de scripting care face paginile web interactive.

Cele mai importante caracteristici arhitecturale ale acestui produs sunt tastarea dinamică și slabă, gestionarea automată a memoriei, programarea perfectă și funcțiile obiectelor de primă clasă.

În general, JavaScript a fost influențat motive diferite, pentru că în timpul dezvoltării au dorit să creeze un limbaj similar cu Java, dar ușor de utilizat pentru programatori. Apropo, limbajul JavaScript nu este deținut de nicio companie sau organizație, ceea ce îl face diferit de o serie de stiluri de programare utilizate de dezvoltatorii web.

Trebuie remarcat faptul că JavaScript este o marcă înregistrată a Oracle Corporation.

Ce este o matrice?

Un tablou este unul care stochează valori numerotate. Fiecare astfel de valoare este numită componentă de matrice, iar cifra căreia este asociată componenta se numește index. Matricea JavaScript este netipificată. Aceasta înseamnă că elementele matricei pot fi de orice tip și diverse detalii, aparținând aceleiași matrice, au tipuri complet diferite.

În plus, matricea JavaScript este dinamică, ceea ce înseamnă că nu este nevoie să declarați o dimensiune fixă. La urma urmei, puteți adăuga oricând detalii noi.

Producția de matrice

Folosind limbaj JavaScript, crearea unei matrice nu este deloc dificilă. Există două metode pentru aceasta. Primul implică crearea unei matrice folosind un literal - paranteze pătrate, în interiorul căreia se află o listă de părți, separate prin virgule.

  • var gol = ; //matrice goală;
  • var numere = ; //matrice cu cinci componente digitale;
  • var diff = ; //matrice cu trei elemente de tipuri diferite.

De obicei, valorile de aici nu trebuie să fie simple (șiruri și numere). Poate fi, de asemenea, orice alte expresii, de exemplu, literale subiect, alte funcții și matrice.

A doua modalitate de a crea o matrice este apelarea designerului Array(). Îl poți invita în trei moduri:

  • Apelarea designerului fără argumente: var b - new Array(). Aceasta prevede crearea unui tablou gol, echivalent cu un literal gol.
  • Constructorul specifică în mod explicit valoarea celor n componente ale matricei: var b = new Array (1, 3, 5, 8, „șir”, adevărat). În acest caz, designerului i se prezintă o listă de argumente care sunt transformate în componente ale unei noi matrice. Argumentele sunt scrise în matrice în locația în care sunt specificate.
  • Definirea zonei pentru atribuirea ulterioară a valorilor. Acest lucru se face prin specificarea când se identifică o matrice dintr-un singur număr inclus în paranteze rotunde: var b = nou Array(5). Aceasta metoda detectarea implică alocarea unei matrice cantitatea necesară componente (fiecare dintre care este listată ca nedefinită) cu posibilitatea de a atribui ulterior valori în timpul procesului de prezentare. Acest formular este de obicei folosit pentru a pre-aloca o matrice Javascript a cărei lungime este cunoscută dinainte.
Scrierea, citirea și adăugarea detaliilor matricei

Puteți accesa componentele unei matrice folosind operatorul. Apropo, toate componentele din JavaScript, începând de la zero, sunt numerotate. Pentru a obține elementul necesar, numărul acestuia este indicat în De regulă, detaliile pot fi modificate. Și pentru a adăuga JavaScript la matrice, trebuie doar să atribuiți o nouă valoare.

Trebuie remarcat faptul că matricele JavaScript pot stoca orice număr de elemente de orice fel.

Lungimea matricei

Deci, știm că lungimea unui tablou este în general un fenomen interesant. Să aruncăm o privire mai atentă. Toate tablourile, indiferent dacă sunt construite folosind designerul Array() sau dezvăluite printr-un literal de matrice, au o proprietate de lungime specifică care indică numărul total de elemente stocate. Deoarece o matrice poate conține părți nedefinite (notate cu nedefinit), o expresie mai precisă este: calitatea lungimii este întotdeauna cu unul mai mare decât cea mai mare camera mare(index) al unei componente de matrice. Calitatea lungimii este ajustată automat, rămânând precisă atunci când apar piese noi în matrice.

Pentru a face să apară componenta finală a matricei, puteți utiliza proprietatea length.

Ultima parte are un index cu un mai mic decât dimensiunea matricei. La urma urmei, numărătoarea inversă începe întotdeauna de la zero. Oh, acest JavaScript! Lungimea matricei depinde de numărul exact de elemente. Deci, dacă nu știți câte ar trebui să fie, dar trebuie să accesați elementul final al matricei, trebuie să utilizați notația: v.length - 1.

Iterarea asupra detaliilor matricei

Foarte des, proprietatea lungimii este folosită pentru a itera detaliile unui tablou într-o buclă:

  • fructe var = [„căpșuni”, „piersici”, „măr”, „banane”];
  • pentru(var I = 0; i< fruits.lenght; i++);
  • document.write(fructe[i] + "...").

În acest exemplu, componentele par a fi plasate continuu și încep cu prima parte deținând un indice de zero. Dacă nu este cazul, înainte de a apela fiecare element al matricei, trebuie să verificați dacă este definit.

O buclă este de asemenea folosită uneori pentru a inițializa componente.

Creșteți și trunchiați o matrice

Mă întreb cum se folosește limba Șir JavaScript adăugați la matrice? Pe măsură ce lucrăm cu matrice, lungimea calității se îmbunătățește automat, motiv pentru care trebuie să avem grijă de asta. Este necesar să ne amintim un detaliu - proprietatea lungimii nu este doar lizibilă, ci și scrisă. Dacă calității lungimii i se atribuie o valoare mai mică ca dimensiune decât cea actuală, atunci matricea este redusă la dimensiunea specificată. Orice componente care nu se află în noul interval de index sunt aruncate și valorile lor sunt pierdute, chiar dacă lungimea este returnată ulterior - valorile nu sunt restaurate.

Este destul de ușor să ștergeți matricea astfel: foo.length = 0.

Dacă calitatea lungimii este mai mare decât valoarea sa actuală, noi părți neidentificate vor apărea la sfârșitul matricei, ceea ce o va crește la dimensiunea dorită.

Îndepărtarea pieselor de model

Operatorul de ștergere specifică o valoare nedefinită într-o componentă a matricei, dar aceasta continuă să existe. Dacă trebuie să eliminați un element dintr-o matrice JavaScript, astfel încât părțile rămase să fie mutate în spațiul liber, trebuie să utilizați una dintre metodele de matrice furnizate. Metoda Array.shift() elimină prima componentă, pop() elimină componenta finală, iar metoda splice() elimină una sau o serie de componente oriunde în matrice.

Matrice multidimensionale

Se pare că ne-am dat seama puțin, tablourile bidimensionale sunt ceea ce trebuie să luăm în considerare în continuare. Vă amintiți că matricele JavaScript pot conține și alte elemente ca componente? Această caracteristică este utilizată pentru producție tablouri multidimensionale. Pentru a vizita componente dintr-o serie de matrice, pur și simplu utilizați paranteze pătrate de două ori.

Matrice asociative

Acum haideți să explorăm modul în care marca comercială JavaScript folosește matricele asociative. Pentru a face acest lucru, trebuie să ne uităm la teorie: tablourile asociative sunt uneori numite tabele hash. Datorită lor, șirurile sunt folosite în loc de indecși. Utilizarea unor astfel de constructe este similară cu utilizarea numelui proprietății unui obiect simplu, dar în această opțiune la efectuarea lucrărilor în format matrice. Deoarece JavaScript nu are modalități de a opera cu tablouri asociative, acestea sunt folosite mult mai puțin frecvent decât cele obișnuite. Trebuie remarcat faptul că acestea pot fi în continuare utile pentru stocarea datelor și ușurează reținerea detaliilor care trebuie accesate.

Ieșire matrice

Ce vom învăța acum despre JavaScript? Afișarea matricei într-o casetă de dialog (pe ecranul monitorului), precum și afișarea valorilor componentelor matricei.

Dacă trebuie să afișați valorile tuturor componentelor dintr-un program, atunci este convenabil să utilizați instrucțiunea for. În mod interesant, variabila pentru contor reguli este folosită ca index al unei componente de matrice.

Curatenie

Pentru a filtra Matrice JavaScript, trebuie să-i resetați lungimea:

  • var myArray = ;
  • myArray.length = 0.
  • clear: function() (;
  • aceasta.lungime = 0;
  • returnează asta;
Adăugarea și îndepărtarea componentelor

Ei bine, să continuăm să studiem acest limbaj JavaScript interesant. Un element de matrice poate fi șters sau adăugat în același mod ca proprietățile obișnuite ale altor obiecte. Dar există unele diferențe: adăugarea de proprietăți numerice poate modifica calitatea lungimii, iar modificarea proprietății lungime poate elimina calitățile numerice. În principiu, algoritmul pentru setarea calităților pentru matrice este următorul:

  • Când se adaugă o proprietate digitală necunoscută i, dacă lungimea este egală sau mai mică decât i, lungimea este definită a fi i+1.
  • Când calitatea își schimbă lungimea, următoarele acțiuni: dacă valoarea atribuită este mai mică decât zero, atunci este aruncată o RangeError. Toate calitățile numerice și indicii care sunt egali cu noua lungime și care sunt mai mari sunt eliminați.

În general, ștergerea unui element dintr-o matrice JavaScript nu este dificilă. La urma urmei, chiar și atunci când setați lungimea, trebuie să eliminați componentele „extra” din ea. Acest lucru duce la opțiunea de ștergere a matricei. Dacă dintr-un motiv oarecare variabila alocată unei matrice noi goale nu este satisfăcătoare și este necesară resetarea celei curente, este suficient să atribuiți valoarea zero calității lungimii sale.

metodele unshift, shift, pop și push

Deși componentele matricei sunt modificate manual, mulți oameni recomandă utilizarea metodelor încorporate pentru aceasta. Această nuanță este cea care garantează valoarea corectă a calității lungimii și absența golurilor în matrice. Apropo, calitatea corectă a lungimii va corespunde numărului de componente.

Metoda push mută părțile trecute la sfârșitul matricei. Metoda pop redă componenta finală și o elimină.

În general, în Internet Explorer mai tânără decât versiunea a opta, unshift poate returna nedefinit; în alte browsere, o nouă valoare de lungime. Prin urmare, este mai bine să nu vă bazați pe valoarea returnată de la unshift.

Adăugarea și eliminarea pieselor în mijlocul unui tablou

Dacă trebuie să șterg o matrice JavaScript, ce ar trebui să fac? Metoda splice este cunoscută ca având semnătura Array.prototype.splice.

Îndepărtează componentele deleteCount din matrice, începând cu indicatorul de pornire. Dacă sunt transmise mai mult de două argumente, atunci toate argumentele ulterioare din matrice sunt plasate în locul celor eliminate. Dacă startul este negativ, atunci indicele de la care se va relua retragerea va fi egal cu lungimea + start. Matricea este returnată din elementele eliminate.

De fapt, folosind metoda splice, puteți elimina componente din mijlocul matricei sau puteți adăuga orice număr de componente oriunde în matrice.

În cea mai simplă versiune, dacă trebuie să eliminați o componentă cu index i, trebuie să solicitați metoda de îmbinare din matricea cu parametrii i și 1.

În principiu, al doilea parametru al metodei splice este opțional, dar comportamentul unei funcții cu un argument este diferit în fiecare browser.

De exemplu, în Firefox, în cele mai recente variante ale Opera, în Safari și în Chrome, toate detaliile până la sfârșitul matricei vor fi eliminate.

Nicio componentă nu va fi eliminată în IE. În primele variații ale Opera, este imposibil să preziceți comportamentul - va fi eliminată o parte cu începutul indexului - 1. Prin urmare, trebuie să treceți întotdeauna cel puțin două componente acestei metode.

Chei

Desigur, atunci când învățați JavaScript, ar trebui să aveți în vedere și tablourile asociative, așa cum am menționat mai devreme. Acesta este un tip abstract de informații (o interfață pentru o stocare de date), care vă permite să salvați perechi de forma „(cheie, valoare)” și să sprijine operațiunile de adăugare a unei perechi, precum și ștergerea și căutarea unei perechi prin cheie:

GĂSIȚI (cheie).

INSERT (valoare, cheie).

ELIMĂ (cheie).

Se presupune că două perechi cu chei similare nu pot fi stocate într-o matrice asociativă. Într-o pereche k + v, v se numește valoarea asociată cu cheia k. Semantica și numele operațiilor de mai sus pot fi diferite în diferite implementări ale unor astfel de matrice.

Astfel, acțiunea FIND (cheie) returnează valoarea asociată cu cheia dată sau un anumit obiect UNDEF care indică faptul că nu există nicio valoare asociată cu cheia dată. Celelalte două acțiuni nu returnează nimic (cu excepția faptului că operația a avut succes).

În general, din punct de vedere al interfeței, este convenabil să se considere o matrice asociativă ca o matrice simplă în care nu numai numere întregi, ci și valori de alte tipuri - de exemplu, șiruri - pot fi folosite ca indici.

Apropo, suportul pentru astfel de matrice este disponibil în multe interpretate limbaje de programare nivel inalt, cum ar fi PHP, Perl, Ruby, Python, Tcl, JavaScript și altele. Pentru limbile care nu au instrumente încorporate pentru lucrul cu tablouri asociative, a fost creat un număr colosal de implementări sub formă de biblioteci.

Un exemplu de tablou asociativ ar fi carte de telefoane. În această versiune, semnificația este complexul „F. I. O. + adresa”, iar cheia este numărul de telefon. unu număr de telefon are un singur proprietar, dar o persoană poate deține mai multe numere.

Extensii asociative

Trebuie remarcat faptul că cele mai faimoase extensii includ următoarele:

  • FIECARE - „treceți prin” toate perechile salvate.
  • CLEAR - eliminați toate înregistrările.
  • MIN - găsiți perechea cu cea mai mică valoare a cheii.
  • MAX - găsiți perechea cu cea mai mare valoare a cheii.

Ultimele două opțiuni necesită ca tastele să indice acțiunea de comparare.

Implementări de tablouri asociative

Există multe implementări diferite ale unui tablou asociativ. Cea mai comună implementare s-ar putea baza pe o matrice simplă ale cărei componente sunt perechi (valoare, cheie). A mari viteza acțiuni de căutare poti aranja componentele a acestei matrice prin cheie și găsiți folosind Dar acest lucru va crește perioada de timp necesară pentru a adăuga o nouă pereche, deoarece va fi necesar să „depărtați” componentele matricei pentru a împacheta o înregistrare nouă în celula goală care apare.

Cele mai cunoscute implementări sunt cele bazate pe diferiți arbori de căutare. De exemplu, într-un cititor C++ STL tipic, containerul hărții este implementat pe baza unui arbore de mahon negru. Stilurile Ruby, Tcl, Python folosesc un tip de tabel hash. Există și alte implementări.

În general, fiecare implementare are propriile sale dezavantaje și avantaje. Este important ca toate cele trei acțiuni să fie efectuate atât în ​​medie, cât și în cea mai proastă nuanță pe perioada O(log n), unde n este numărul curent de perechi salvate. Pentru arborii de căutare potriviți (inclusiv arborii negru-roșu), această condiție este îndeplinită.

Se știe că implementările bazate pe tabelul hash au un timp mediu de O(1), care este mai bun decât implementările bazate pe arborele de căutare. Desigur, acest lucru nu garantează execuția de mare viteză a operațiunilor individuale: timpul de INSERT în cel mai rău caz este notat cu O(n). Procesul INSERT rulează o perioadă lungă de timp când factorul de umplere atinge punctul cel mai înalt și indexul tabelului hash trebuie reconstruit.

Apropo, aceste liste hash sunt proaste, deoarece nu pot fi folosite pentru a se executa rapid acțiuni suplimentare MAX, MIN și un algoritm pentru parcurgerea tuturor perechilor salvate în ordinea descrescătoare sau crescătoare a tastelor.

Ziua bună tuturor. Alexey Gulynin este în legătură. În ultimul articol ne-am uitat la construcția casei de comutare în javascript. În acest articol, aș dori să vă spun ce matrice sunt în Javascript. Conceptul de matrice joacă un rol important nu numai în Javascript, ci și în toată programarea. O variabilă, cum ar fi o matrice, conține nu un element, ci mai multe. Sintaxa pentru crearea unui tablou este următoarea:

Var mas = new Array(valoare1, valoare2,..., valoareN);

În acest caz, se creează o variabilă matrice mas cu valorile indicate în paranteze. Vă rugăm să rețineți că matricea este creată folosind noul cuvânt cheie. Puteți accesa elementele unei matrice specificând numele matricei și indexul matricei între paranteze drepte. Indicele matricei este setat de la zero. Să dăm un exemplu de matrice formată din 4 elemente și să afișăm al 2-lea element:

var mas = new Array("privet", 1, 10, 5); document.write("Al doilea element de matrice = "+mas); // va fi afișat numărul 10

Dacă punem mas , atunci se va tipări „privet”, deoarece indexarea matricei începe de la zero. Să ne dăm seama acum cum să afișam toate elementele unui tablou. Pentru a face acest lucru, trebuie să utilizați o buclă. Pe lângă cunoașterea buclelor în Javascript, trebuie să cunoașteți proprietatea lungime a matricei, care returnează numărul de elemente ale matricei (sau, cu alte cuvinte, lungimea acestuia). Să tipărim lungimea matricei mas:

var mas = new Array("privet", 1, 10, 5); document.write("Lungimea matricei = "+mas.lungime); // va fi afișat numărul 4

Imprimarea tuturor elementelor matricei:

var mas = new Array("privet", 1, 10, 5); var i; pentru (i = 0; i< mas.length; i++) document.write(mas[i]+" ");

Până acum, ne-am uitat la tablouri unidimensionale. În general, tablourile pot fi multidimensionale. Principalul lucru pe care trebuie să-l înțelegeți este că, de exemplu, o matrice bidimensională este o matrice ale cărei elemente sunt matrice. Să ne uităm la această problemă: trebuie să creați o matrice bidimensională 3 cu 3, ale cărei elemente sunt specificate de utilizator și să afișați această matrice. Aici vom folosi operatorul prompt pentru a solicita un număr de la utilizator:

var mas = new Array(); //declară tabloul const n = 3; //declară o constantă, i.e. Matricea noastră are dimensiunea de 3 pe 3 //pentru a defini o matrice bidimensională, trebuie să utilizați o buclă dublă var i; var j; pentru (i = 0; i< n; i++) { mas[i] = new Array();//Здесь мы как раз каждый элемент массива делаем массивом for (j = 0; j < n; j++) { mas[i][j] = prompt("[" + i +","+j+"]= " ,"..."); //запрашиваем число у пользователя } } for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { document.write("[" + i +","+j+"]= "+ mas[i][j]);} //выводим элемент массива document.write("
"); //mergi la linie nouă după fiecare rând umplut al matricei)

În cazul nostru, o matrice bidimensională corespunde (de exemplu) următoarei structuri: mas=[,,] . Puteți vedea că matricea are 3 elemente, fiecare dintre acestea fiind o matrice în sine.

Inițial, sarcina Javascript a fost să creeze site-uri web dinamice. În practica mea, nu am folosit niciodată tablouri bidimensionale, ci doar unidimensionale, așa că cunoștințele despre matrice pe care le-ați primit din acest articol vor fi destul de suficiente. Intr-unul din articolele urmatoare voi vorbi Obiect matrice, proprietățile și metodele sale.

Puteți lucra cu matrice folosind diverse metode, furnizat de constructorul Array.

Metode pop/push și shift/unshift

Să ne uităm la metodele pop() și push(). Aceste metode vă permit să lucrați cu matrice ca și cum ar fi stive. O stivă este o structură de date în care accesul la elemente este organizat conform principiului LIFO (în engleză: last in - first out, „last in - first out”). Principiul de funcționare al stivei poate fi comparat cu un teanc de farfurii: pentru a o lua pe a doua de sus, trebuie să o scoateți pe cea de sus. Cum funcționează este prezentat în figură:

Și deci să revenim la metodele push() și pop(). Metoda push() adaugă unul sau mai multe elemente noi la sfârșitul matricei și returnează noua lungime. metoda pop() - elimină ultimul element al matricei, reduce lungimea matricei și returnează valoarea pe care a eliminat-o. Este demn de remarcat faptul că ambele metode modifică matricea în loc, mai degrabă decât să creeze o copie modificată a acesteia.

Var foo = ; // foo: foo.push(1,2); // foo: Returnează 2 foo.pop(); // foo: Returnează 2 foo.push(3); // foo: Returnează 2 foo.pop(); // foo: Returnează 3 foo.push(); // foo: ] Returnează 2 foo.pop() // foo: Returnează foo.pop(); // foo: Returnează 1 var fructe = ["pere", "banane", "mere"]; var cules = fructe.pop(); document.write("Mi-ai ales " + ales); Încerca "

Metodele shift() și unshift() se comportă la fel ca pop() și push(), cu excepția faptului că inserează și elimină elemente la începutul matricei. Metoda unshift() mută elementele existente la indici mai mari pentru a face loc pentru elemente noi, adaugă unul sau mai multe elemente la începutul matricei și returnează noua lungime a matricei. Metoda shift() elimină primul element al matricei și returnează valoarea acestuia, mutând toate elementele ulterioare pentru a ocupa spatiu liber la începutul matricei.

Var f = ; // f: f.unshift(1); // f: Returnează: 1 f.unshift(22); // f: Returnează: 2 f.shift(); // f: Returnează: 22 f.unshift(3,); // f:,1] Returnează: 3 f.shift(); // f:[,1] Returnează: 3 f.shift(); // f: Returnează: f.shift(); // f: Returnări: 1

metoda join

Metoda Array.join() este folosită pentru a uni elementele unui tablou într-un șir. Metodei i se poate transmite un argument șir opțional, care va fi folosit pentru a separa elementele din șir. Dacă delimitatorul nu este specificat, caracterul delimitator implicit la apelarea metodei va fi o virgulă.

Var a = ["Vânt","Ploaie","Foc"]; var myVar1 = a.join(); //"Vânt, Ploaie, Foc" var myVar2 = a.join(", "); //"Vânt, Ploaie, Foc" var myVar3 = a.join(" + "); //"Vânt + Ploaie + Foc" document.write(myVar1 + "
" + myVar2 + "
" + myVar3); Încercați "

Metoda Array.join() este inversa metodei String.split(), care creează o matrice prin împărțirea unui șir în fragmente.

metoda inversă

Metoda Array.reverse() inversează ordinea elementelor dintr-o matrice și returnează o matrice cu elementele rearanjate. Această metodă nu creează o nouă matrice cu elemente reordonate, ci mai degrabă le reordonează într-o matrice existentă.

Var myArr = [„unu”, „două”, „trei”]; document.write(myArr.reverse()); Încerca "

metoda concat

Metoda Array.concat() creează și returnează o nouă matrice care conține elementele matricei originale pe care a fost apelat concat(), mărită secvenţial cu valorile tuturor argumentelor transmise la concat(). Dacă oricare dintre aceste argumente este el însuși o matrice, atunci toate elementele sale vor fi adăugate. Numele tablourilor sunt folosite ca argumente și sunt specificate în ordinea în care vor fi combinate elementele lor.

Var a = ; a.concat(4, 5) //Returnează a.concat(); //acelasi lucru - returneaza a.concat(,) //Returns

metoda de sortare

Metoda Array.sort() sortează elementele matricei la locul lor și returnează matricea sortată. Dacă metoda sort() este apelată fără argument, sortează elementele matricei în ordine alfabetică(le convertește temporar în șiruri pentru a efectua comparația). Metoda sort() poate lua ca argument o funcție de comparație, care determină ordinea de sortare a elementelor.

Var a = ["Kiwi", "Portocale", "Pere"]; a.sort(); var s = a.join(", "); //Portocale, Pere, Kiwi document.write(s); //exemplu cu numere var myArr = ; myArr.sort(); document.write(myArr); //1,10,2 Încercați »

Probabil te așteptai să vezi un rezultat ușor diferit de sortarea numerelor. Această sortare are loc deoarece metoda sort() sortează elementele transformându-le în șiruri de caractere. Prin urmare, ordinea lor se dovedește a fi șir - la urma urmei, „10”

Pentru a sorta în altă ordine decât alfabetică, puteți trece o funcție de comparație ca argument la metoda sort(). Cu toate acestea, trebuie luat în considerare faptul că va trebui să scrieți singur funcția de comparare. Această funcție trebuie să aibă doi parametri deoarece stabilește care dintre cele două argumente ale sale ar trebui să apară primul în lista sortată. Pentru a facilita înțelegerea și scrierea unei astfel de funcție, există mai multe reguli prin care se va determina ordinea elementelor:

  • Dacă primul argument trebuie să apară înaintea celui de-al doilea, funcția de comparare revine un număr negativ(în cazul în care o
  • Dacă primul argument trebuie să-l urmeze pe al doilea, atunci funcția de comparare returnează un număr pozitiv (dacă a > b)
  • Dacă două valori sunt echivalente (adică ordinea lor nu este importantă), funcția de comparare returnează 0 (dacă a == b)

Pentru comparație, funcția folosește elemente de matrice ca argumente:

Funcția foo(a,b) ( //definiți funcția de verificare dacă (a b) returnează 1; returnează 0; //dacă a == b ) var a = ; a.sort(foo); //numai numele funcției este transmis ca argument document.write(a.join(", ")); //scrie același lucru mai pe scurt var a = ; a.sort(funcția(a,b) ( //folosește funcția anonimă returnează a - b; //funcția returnează valoarea 0 )); document.write(a); //1,2,5,10 Încercați »

Prima intrare din exemplu este scrisă în acest fel pentru a face mai ușor de înțeles cum funcționează. Observați cât de convenabil este să utilizați o funcție anonimă în al doilea fragment. Se numește o singură dată, așa că nu este nevoie să-i dai un nume.

Notă: Dacă există elemente nedefinite în matrice, acestea sunt mutate la sfârșitul matricei.

metoda feliei

Metoda Array.slice() este folosită pentru a copia o secțiune specificată dintr-o matrice și returnează o nouă matrice care conține elementele copiate. Matricea originală nu se modifică.

Sintaxa metodei:

ArrayName.slice(begin, end);

Array_name ar trebui să fie înlocuit cu numele matricei din care doriți să extrageți set specific elemente pentru noua matrice. Metoda ia două argumente care specifică începutul și sfârșitul matricei returnate. Metoda copiază o secțiune a matricei, începând de la început până la sfârșit, fără a include sfârșitul. Dacă este dat un singur argument, tabloul returnat va conține toate elementele de la poziția specificată până la sfârșitul matricei. Puteți folosi indici negativi - aceștia sunt numărați de la sfârșitul matricei.

Var arr = ; arr.slice(0,3); //Returnează arr.slice(3); //Returns arr.slice(1,-1); //Returns arr.slice(-3,-2); //Se intoarce

metoda de îmbinare

Metoda Array.splice() este metoda universala pentru lucrul cu matrice. Modifică matricea în loc, mai degrabă decât să returneze o nouă matrice modificată, așa cum o fac metodele slice() și concat(). Metoda de îmbinare poate elimina elemente dintr-o matrice, poate introduce elemente noi, poate înlocui elemente - câte unul și simultan. Returnează o matrice formată din elementele eliminate, dacă niciun element nu a fost eliminat, va returna o matrice goală.

Sintaxa metodei:

Array_name.splice(index, cantitate, elem1, ..., elemN);

Primul argument specifică indexul din matrice de la care se începe inserarea sau eliminarea elementelor. Al doilea argument specifică numărul de elemente care ar trebui eliminate din matrice pornind de la indexul specificat în primul argument; dacă al doilea argument este 0, atunci niciun element nu va fi eliminat. Dacă al doilea argument este omis, toate elementele matricei pornesc de la indice specificat până la sfârșitul matricei. Când se utilizează un număr de poziție negativ, elementele vor fi numărate de la sfârșitul matricei.

Fructe de var = ["portocale", "mere", "pere", "struguri"]; var deleted = fruits.splice(2,2); //returns ["pere", "struguri"] document.write(deleted); var arr = ; arr.splice(4); //Se intoarce ; tabloul a devenit: arr.splice(1,2); //Se intoarce ; tabloul a devenit: arr.splice(1,1); //Se intoarce ; matricea a devenit: Încercați »

Primele două argumente ale metodei splice() specifică elementele matricei care trebuie eliminate. Aceste două argumente pot fi urmate de orice număr de argumente suplimentare care specifică elementele care urmează să fie inserate în matrice, începând de la poziția specificată de primul argument.

Var fructe = ["portocale", "mere"]; fructe.splice(2,0, "pepeni verzi"); //returnează document.write(fructe); //a devenit ["portocale", "mere", "pepeni verzi"] var arr = ; arr.splice(2,0,"a","b"); //Se intoarce ; devenit arr.splice(2,2,); //Returns ["a","b"]; devenit ,3,4,5] Încercați »

Este de remarcat faptul că, spre deosebire de concat(), metoda splice() nu împarte matricele transmise ca argumente în elemente individuale. Adică, dacă metodei i se transmite o matrice de inserat, aceasta inserează matricea în sine, și nu elementele acelei matrice.

metoda toString

Metoda toString() convertește elementele unui tablou într-un șir folosind virgulă ca caracter delimitator.

Var arr = ["Lapte","Pâine","Cookies"]; var food = arr.toString(); document.write(mancare); //Lapte, Pâine, Biscuiți Încercați »

Rețineți că metoda returnează același șir ca join() atunci când este apelată fără argumente.

indexOf și lastIndexOf

Metoda indexOf returnează indexul unui element a cărui valoare este egală cu valoarea transmisă ca argument metodei.

Sintaxa metodelor indexOf() și lastIndexOf():

Nume_matrice.indexOf(element_căutare, index) nume_matrice.lastIndexOf(element_căutare, index)

Primul argument al metodei specifică valoarea elementului al cărui index trebuie găsit, al doilea argument (opțional) specifică indexul de la care va începe căutarea. Dacă există mai multe apariții identice, este selectat cel mai mic (primul) indice. Dacă un element cu valoarea dorită nu este găsit, metoda va returna -1. În cadrul metodei, pentru căutare este utilizată comparația strictă (===).

Var a = ; a.indexOf(3); //return 2 a.indexOf(3,4); //întoarce 6 a.indexOf(35); //return -1: nu există niciun element cu această valoare a.indexOf(2); // 1

Metoda lastIndexOf() returnează și indexul elementului, a cărui valoare este egală cu valoarea transmisă metodei ca argument. Singura diferență este că metoda lastIndexOf() selectează cel mai mare (ultimul) index.

Var a = ; a.lastIndexOf(3); //return 7 a.lastIndexOf(35); //return -1: nu există niciun element cu această valoare a.lastIndexOf(2); // 6

Metode iteratoare

Metodele descrise mai jos sunt iteratoare. In toate browsere moderne Pentru a lucra cu matrice, există metode care sunt concepute pentru a repeta peste elemente și pentru a efectua diverse acțiuni asupra acestora. Aceste metode sunt forEach(), map(), filter(), every(), some, reduce() și reduceRight().

Ei iterează peste elementele matricei începând de la 0 până la lungimea - 1 și, dacă elementul există, îl transmit funcției de gestionare a apelului invers.

pentru fiecare

Sintaxa metodei:

ArrayName.forEach(callback, thisArg)

Primul argument specifică funcția de apel invers pe care metoda forEach() o va apela pentru fiecare element al matricei. Trebuie să scrieți singur implementarea funcției de gestionare numită. Funcția apelată trebuie să aibă trei parametri: primul parametru ia ca argument valoarea elementului matrice, al doilea - indexul elementului, iar al treilea - matricea în sine. Cu toate acestea, dacă trebuie să utilizați doar valorile elementelor matricei, puteți scrie o funcție cu un singur parametru. Al doilea argument - thisArg (opțional) va fi transmis ca valoare a acestui.

Var arr = ; funcția foo(valoare) (​var sum = valoare * this; return document.write(sum + "
"); ) arr.forEach(foo, 5); //al doilea argument va fi transmis ca valoare a acestui //exemplu cu trei parametri var a = ; a.forEach(function(el, idx, a) ( document .write( "a["+idx+"] = "+el+" în ["+a+"]
"); )); Încerca "

filtru

Sintaxa metodei:

Array_name.filter(callback, thisObject)

Metoda filter() creează și returnează o nouă matrice care va conține doar acele elemente ale matricei pentru care apelul funcții de apel invers va reveni adevărat.

Funcția isBig(element, index, array) ( // returnează numere care sunt mai mari sau egale cu 10 returnează (element >= 10); // dacă valoarea elementului este mai mare sau egală cu 10, expresia va returna true ) var filtrat = .filter(isBig) ; //filtrat

Hartă

Metoda map() creează și returnează o nouă matrice, care va consta din rezultatele apelării funcției callback(item, idx, ar) pentru fiecare element al matricei.

Var a = ; var b = a.map(function(item, idx, arr) ( return item * item; )); // b =

fiecare și unii

Metoda every() returnează adevărat dacă, pentru toate elementele matricei, funcția specificată folosită pentru a le verifica returnează adevărat.

Metoda some() returnează adevărat dacă unul sau mai multe elemente din funcția specificată returnează adevărat în timpul testării.

Var a = ; a.fiecare(funcție(x) ( return x 10; )) //adevărat: un număr > 10

reduce și reduceDreapta

Sintaxa metodei:

nume_matrice.reduce(callback, initialValue) nume_matrice.reduceRight(callback, initialValue)

Se aplică metoda reduce(). functie specificata(callback) în raport cu două valori din matrice simultan, repetând elementele de la stânga la dreapta, menținând în același timp rezultat intermediar.

Argumente ale funcției de apel invers: (previousValue, currentItem, index, array)

  • previousValue - rezultatul returnat al funcției de apel invers (cunoscut și ca rezultat intermediar)
  • currentItem - elementul curent al matricei (elementele sunt sortate în ordine de la stânga la dreapta)
  • index - indice al elementului curent
  • array - matrice procesată

initialValue este obiectul folosit ca prim argument al primului apel la funcția de apel invers. Mai simplu spus, valoarea precedentValue atunci când este prima dată apelată este egală cu initialValue. Dacă nu există initialValue, atunci este egal cu primul element al matricei, iar căutarea începe de la al doilea:

Var a = ; function foo(prevNum,curNum) ( sum = prevNum + curNum; alert(sum); return sum; ) var rezultat = a.reduce(foo, 0); document.write(rezultat); Încerca "

Să vedem cum funcționează acest exemplu. Primele argumente ale funcției foo sunt:

  • prevNum = 0 (deoarece initialValue este 0)
  • curNum = 1 (elementul curent este primul element al matricei)

1 se adaugă la numărul 0. Acest rezultat (suma: 1) va fi trecut ca prevNum data viitoare când funcția este rulată. Și tot așa până ajunge la ultimul element. Rezultatul returnat, suma din ultima rundă, va fi 15 (1+2+3+4+5).

Metoda reduceRight funcționează similar cu metoda reduce, dar trece prin matrice de la dreapta la stânga:

Var a = ["h","o","m","e"]; bara de funcții(prevStr, curItem) ( return prevStr + curItem; ) document.write(a.reduceRight(bar)); //emoh

Să învățăm cum să indexăm tablourile în js, să eliminăm și să adăugăm elementele acestora.

O matrice în JavaScript este un obiect global conceput pentru a stoca o listă de valori.

Este similar cu alte variabile prin faptul că poate stoca orice tip de date. Dar matricea are unul diferenta importanta dintr-o variabilă: poate stoca mai mult de un element simultan.

Un tablou este o colecție ordonată de valori. Fiecare valoare se numește element și are propriul său număr, numit index.

Un element din interiorul unui tablou poate fi de orice tip. Mai mult, elementele unei matrice pot fi tipuri diferite: numere, șiruri, porți logiceși chiar obiecte sau alte matrice.

Ordinea elementelor matricei începe de la 0. Se pare că tabloul va avea întotdeauna un index compensat cu unu: primul element va avea indicele 0, al doilea 1 etc.

Iată un exemplu de matrice cu elemente de diferite tipuri:

Crearea (declararea) unui tablou

Matricele sunt foarte convenabile deoarece pot stoca atâtea date câte aveți nevoie. Dimensiunea maximă posibilă a unui tablou js este de 2 32 de elemente.

Trebuie să spunem JavaScript că vrem să creăm o matrice. Există două opțiuni pentru aceasta: valoarea între paranteze drepte sau noul cuvânt cheie.

Notare scurtă: folosind paranteze pătrate

O listă de valori separate prin virgulă, cuprinsă între paranteze drepte.

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

Conținutul matricei este determinat de ceea ce se află între paranteze drepte. Fiecare valoare este separată prin virgulă.

Valorile sunt specificate în același mod ca și variabilele simple, adică șirurile de caractere trebuie declarate între ghilimele etc.

Pentru a declara o matrice goală, lăsați parantezele goale:

var myArray = ;

Intrare lungă: folosind constructorul Array().

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

Noul cuvânt cheie îi spune JavaScript să creeze o nouă matrice ale cărei valori sunt transmise ca parametri.

Dacă știți dinainte câte elemente vor fi în tabloul dvs., puteți trece imediat această valoare în constructor.

var myArray = new Array(80);

Expresia de mai sus va crea o matrice goală constând din 80 de sloturi cu valori nedefinite.

Declararea unui tablou gol:

var myArray = new Array();

Accesarea elementelor de matrice

Folosind indexul fiecărui element, puteți lucra cu orice date din matrice, accesând-o folosind operatorul:

var myArray = ["Jack", "Sawyer", "John", "Desmond"]; console.log(myArray); // Imprimă „Jack” console.log(myArray); // Tipărește „Desmond”

O matrice poate avea mai multe niveluri, adică fiecare element poate fi el însuși o matrice. Rezultatul va fi o matrice js bidimensională. Cum putem accesa aceste matrice care se află în interiorul altora - „matrice multidimensionale”?

Ca exemplu, să considerăm o matrice care reprezintă o familie. Copiii din această familie sunt înregistrați într-o matrice separată în interiorul celei principale:

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

Vă puteți imagina așa:

Pentru a face referire la valoarea „Lisa”:

var lisa = familyArray; console.log(lisa); // afișează „Lisa”

Acest lucru poate fi continuat aproape la nesfârșit, ceea ce vă permite să stocați seturi de date imbricate în matrice și să le accesați folosind indecși.

Adăugarea de elemente la o matrice

Ne-am dat seama cum să accesăm elementele matricei folosind indicii lor corespunzători. Într-un mod similar, puteți adăuga (sau modifica) elemente declarând, de exemplu:

var myArray = ["Kate", "Sun"]; myArray = „Julieta”; console.log(myArray); // Tipărește „Kate, Sun, Juliet”

Ce se întâmplă dacă declar un element cu un index care nu are alte elemente înaintea lui? Matricea în sine va crea toate elementele lipsă și le va atribui valoarea nedefinită:

var myArray = ["Kate", "Sun"]; myArray = „Julieta”; console.log(myArray.length); // Tipărește „6” console.log(myArray); // Tipărește ["Kate", "Sung", nedefinit, nedefinit, nedefinit, "Juliet"]

Puteți afla care este lungimea unui tablou js folosind proprietatea length. În exemplul de mai sus, există șase elemente în matrice, iar trei dintre ele nu au primit o valoare - sunt marcate ca nedefinite.

metoda push().

Folosind metoda push(), puteți adăuga unul sau mai multe elemente la o matrice js. Push() acceptă suma nelimitata parametrii, toți vor fi adăugați la sfârșitul matricei.

var myArray = ["Kate", "Sut"]; myArray.push(„Julieta”); // Adaugă elementul „Juliet” la sfârșitul matricei myArray.push(“Libby”, „Shannon”); // Adaugă elementele „Libby” și „Shannon” la sfârșitul matricei console.log(myaArray ); // Tipărește ["Kate", "Soon", "Juliet", "Libby", "Shannon"]

metoda unshift().

Metoda unshift() funcționează la fel ca push(), cu excepția faptului că adaugă elemente la începutul matricei.

var myArray = ["Kate", "Sun"]; myArray.unshift(„Juliet”); // Adaugă elementul "Juliet" la începutul matricei myArray.unshift("Libby", "Shannon"); // Adaugă elementele „Libby” și „Shannon” la începutul matricei console.log(myArray); // Iese ["Libby", "Shannon", "Juliet", "Kate", "Soon"]

Eliminarea elementelor de matrice Pop() și metodele shift().

Metodele pop() și shift() elimină ultimul și, respectiv, primul element al unui tablou:

var myArray = ["Jack", "Sawyer", "John", "Desmond", "Kate"]; myArray.pop(); // Îndepărtează elementul „Kate” myArray.shift(); // Îndepărtează elementul „Jack” console.log(myArray); // Tipărește ["Sawyer", "John", "Desmond"]

metoda splice().

Folosind metoda splice(), puteți elimina sau adăuga elemente într-o matrice, specificând în același timp cu precizie indexul elementelor.

Următorul exemplu utilizează metoda splice() pentru a adăuga două elemente, începând cu indexul 2 (adică al treilea element):

var fruitArray = ["măr", "piersică", "portocală", "lămâie", "lime", "cireș"]; fruitArray.splice(2, 0, "pepene galben", "banana"); console.log(fruitArray); // Iese ["măr", "piersică", "pepene", "banana", "portocală", "lămâie", "lai verde", "cireș"]

Primul parametru al metodei splice() este indexul. Indică în ce poziție trebuie adăugate/înlăturate elementele. În exemplul nostru, am ales indicele 2 (cu valoarea „orange”).

Al doilea parametru este numărul de elemente care trebuie eliminate. Am specificat o valoare de 0, deci nimic nu va fi șters.

Următorii parametri sunt opționali. Ele adaugă noi valori matricei. În cazul nostru, trebuie să adăugăm „pepene” și „banană”, începând cu indicele 2.