CalculatoareProgramare

Matricea JavaScript și crearea acesteia. Totul despre matricea de JavaScript

În acest articol vom lua în considerare matricea JavaScript, componentele acesteia. JavaScript este un script script orientat în mod ideal pentru programare. De fapt, implementează limba ECMAScript (standardul ECMA-262).

Unde este folosit JavaScript? Este folosit ca limbă încorporată pentru a determina calea software-ului spre obiectul aplicației. Acesta poate fi găsit în browsere: este folosit acolo ca limbaj de script care oferă interactivitate paginilor web.

Cele mai importante caracteristici arhitecturale ale acestui produs sunt tastarea dinamică și slabă, gestionarea automată a memoriei, programarea ideală, funcțiile care sunt obiecte din prima categorie.

În general, JavaScript a fost influențat de diferite motive, deoarece în dezvoltarea au vrut să creeze o limbă similară cu Java, dar ușor de folosit de către programatori. Apropo, limbajul JavaScript nu este deținut de nicio întreprindere sau organizație, ceea ce îl deosebește de un număr de stiluri de software utilizate de dezvoltatorii web.

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

Ce este o matrice?

Un matrice este un tip de date care stochează valori numerotate. Fiecare astfel de valoare se numește o componentă de matrice, iar numărul la care este asociată componenta se numește un index. Matricea JavaScript este neatinsă. Aceasta înseamnă că detaliile matricei pot avea orice tip, iar diferite părți aparținând aceleiași matrice au tipuri complet diferite.

În plus, matricea JavaScript este dinamică, ceea ce înseamnă că nu este necesar să se declare o dimensiune fixă. La urma urmei, puteți adăuga noi părți în orice moment.

Array Producție

Folosind limba JavaScript, crearea unui tablou nu este deloc dificilă. Există două metode pentru aceasta. Primul implică realizarea unei matrice cu paranteze literale - pătrate, în interiorul căreia este o listă de părți, separate prin virgule.

  • Var gol = []; // array gol;
  • Numerele var = = [4, 1, 2, 5]; // o matrice cu cinci componente digitale;
  • Var diff = [1,5, fals, "text"]; // o matrice cu trei elemente de diferite tipuri.

De obicei, nu este nevoie ca valorile să fie simple (șiruri și numere). De asemenea, pot fi orice alte expresii, de exemplu, subiecte literale, alte funcții și tablouri.

Cea de-a doua modalitate de a crea o matrice este de a apela proiectantul Array (). Puteți să o invitați în trei moduri:

  • Chemând proiectantul fără argumente: var b - Array nou (). Aici este creată o matrice goală care este echivalentă cu un literal gol [].
  • Constructorul are în mod explicit valorile n componente ale matricei: var b = array nou (1, 3, 5, 8, "string", true). În acest caz, proiectantul este prezentat cu o listă de argumente care se transformă î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. Aceasta se face prin specificarea unei matrice de un număr cuprins în paranteze: var b = array nou (5). Această metodă de detecție implică alocarea la matricea numărului necesar de componente (fiecare dintre acestea fiind listate ca nedefinite) cu posibilitatea de atribuire ulterioară a valorilor în procesul de prezentare. O astfel de formă este de obicei folosită pentru a pre-plasa acea matrice Javascript a cărei lungime este cunoscută în prealabil.

Scrieți, citiți și adăugați detalii despre matrice

Puteți accesa componentele unui matrice utilizând operatorul []. Apropo, toate componentele din JavaScript, începând de la zero, sunt numerotate. Pentru a obține elementul necesar, numărul său este indicat în paranteze pătrate. 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ă în matricea JavaScript puteți stoca orice număr de elemente de orice fel.

Lungimea matricei

Deci, știm ce JavaScript este. Lungimea matricei este, în general, un fenomen interesant. Să o analizăm în detaliu. Toate matricele, proiectate cu ajutorul designerului Array () și identificate de matricea literală, au o proprietate de lungime specifică care reamintește numărul total de elemente salvate. Din moment ce pot exista detalii nedefinite în matrice (denotate undefined), o expresie mai precisă sună astfel: calitatea lungimii este întotdeauna mai mare cu una decât cea mai mare număr (index) a componentei matrice. Lungimea calității este ajustată automat, rămânând exact când apar piese noi în matrice.

Pentru a afișa componenta finală a matricei, puteți utiliza proprietatea lungime.

Ultimul detaliu are un index mai mic decât dimensiunea matricei. La urma urmei, numărarea începe întotdeauna de la zero. Oh, acest JavaScript! Lungimea matricei depinde de numărul exact de elemente. Deci, dacă nu știți câte dintre ele ar trebui să fie, dar trebuie să vă referiți la elementul următor al matricei, trebuie să aplicați intrarea: v.length - 1.

Gama de detalii a matricei

Foarte adesea proprietatea lungime este folosită pentru a enumera detaliile unei matrice într-o buclă:

  • Var fructe = ["căpșuni", "piersici", "măr", "banane");
  • Pentru (var I = 0; i
  • Document.write (fructe [i] + "...").

În acest exemplu, se pare că componentele sunt plasate continuu și încep cu prima parte care deține indicele zero. Dacă nu este cazul, înainte de a apela fiecare element al matricei, este necesar să verificați dacă este definită.

De asemenea, uneori se utilizează o buclă pentru a inițializa componente.

Creșterea și trunchierea unei matrice

Mă întreb cum se utilizează șirul de limbaj JavaScript în matrice pentru a adăuga? În procesul de lucru cu mese, calitatea lungimii lungime se îmbunătățește automat, motiv pentru care trebuie să ne ocupăm și de noi înșine. Este necesar să reamintim un detaliu: proprietatea de lungime nu este numai citită, ci și pentru scriere. Dacă lungimea calității este atribuită unei valori inferioare dimensiunii actuale, matricea este redusă la valoarea specificată. Orice componente care nu se află în noua gamă de indici sunt înclinate și valorile lor sunt pierdute, chiar dacă mai târziu pentru a returna lungimea înapoi - valorile nu sunt restabilite.

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

Dacă calitatea lungimii este mai mare decât valoarea curentă, la sfârșitul matricei apar noi părți dezinstalate, ceea ce o va mări până la dimensiunea dorită.

Ștergerea detaliilor matrice

Operatorul de ștergere specifică o valoare nedefinită în componenta matrice și continuă să existe. Dacă doriți să ștergeți un element al matricei JavaScript, astfel încât detaliile rămase să fie mutate în spațiul liber, trebuie să utilizați una dintre metodele previzibile ale matricei. Metoda Array.shift () elimină prima componentă, pop () este componenta terminatoare, iar metoda splice () este una sau o serie de componente oriunde în matrice.

Array multidimensional

Se pare că am rezolvat ceva despre JavaScript. Dispozitive bidimensionale - asta trebuie să fie luate în considerare în continuare. Vă amintiți că matricea JavaScript poate conține alte elemente ca și componente? Această caracteristică este utilizată pentru a produce matrice multidimensionale. Pentru a vizita componente într-o serie de rețele, este suficient să aplicați parantezele pătrate de două ori.

Machete asociative

Și acum vom învăța cum folosesc matricele asociative ale mărcii comerciale JavaScript. Pentru aceasta, trebuie să analizăm teoria: matricele asociative sunt uneori numite tabele hash. Ei folosesc șiruri în loc de indici. Utilizarea unor astfel de structuri seamănă cu folosirea numelui proprietății unui obiect simplu, dar în această versiune atunci când se efectuează o lucrare într-un format de matrice. Deoarece JavaScript nu are nici un fel de manipulare a matricelor asociative, ele sunt folosite mult mai rar decât cele convenționale. Trebuie remarcat faptul că acestea pot fi totuși utile pentru stocarea datelor și ușurarea memorării detaliilor de care aveți nevoie.

Array Output

Și acum ce vom învăța în sistemul JavaScript? Efectuarea unui tablou într-o casetă de dialog (pe ecranul monitorului), precum și afișarea valorilor componentelor matricei.

Dacă programul trebuie să afișeze valorile tuturor componentelor, atunci este convenabil să folosiți instrucțiunea for. Este interesant faptul că regulatorul variabil al regulilor pentru este utilizat ca un indice al componentei matricei.

curățenie

Pentru a filtra matricea JavaScript, trebuie să ștergeți lungimea sa:

  • Var myArray = [1, 2, 5, 23];
  • MyArray.length = 0.

Următoarele arată implementarea asignării clare () în binecunoscutul cadru Prototype JavaScript:

  • Clear: funcția () {;
  • Această lungime = 0;
  • Returnați acest lucru;
  • }.

Adăugarea și eliminarea componentelor

Continuăm să studiem această limbă JavaScript interesantă. Elementul matricei poate fi șters și adăugat în același mod ca și proprietățile obișnuite ale altor obiecte. Există însă unele diferențe: atunci când se adaugă proprietăți numerice, calitatea lungimii se poate schimba și atunci când proprietatea lungimii este modificată, calitățile numerice pot fi eliminate. În principiu, algoritmul de setare a calităților reelelor este după cum urmează:

  • Atunci când adăugăm o proprietate digitală necunoscută i, dacă lungimea este egală sau mai mică decât i, lungimea este definită ca i + 1.
  • Când se modifică calitatea lungimii, se efectuează următoarele acțiuni: dacă valoarea atribuită este mai mică decât zero, RangeError este aruncat. Eliminați toate calitățile și indicii numerici, care sunt egali cu noua lungime și care sunt mai mari.

În general, eliminarea unui element dintr-o matrice JavaScript nu este dificilă. La urma urmei, chiar și stabilirea lungimii, trebuie să eliminați componentele "extra" din ea. Prin urmare, opțiunea de curățare a matricei. Dacă variabila atribuită a unei matrice noi goale din anumite motive nu a funcționat, dar este necesar să anulați cea curentă, este suficient să alocați valoarea 0 la calitatea sa.

Metodele nu se schimbă, nu se schimbă, nu se împing și se împinge

Deși componentele matricei sunt modificate manual, mulți vă recomandă să utilizați metodele încorporate pentru aceasta. Această nuanță garantează valoarea corectă a lungimii calității și absența omisiunilor în matrice. Apropo, lungimea corectă va corespunde numărului de componente.

Metoda de împingere duce piesele transferate la sfârșitul matricei. Metoda pop returnează componenta trailing și o șterge.

În general, în Internet Explorer, în cea de-a opta versiune, unshift poate reveni nedefinit, în alte browsere - o nouă valoare a lungimii. Deci, este mai bine să nu se bazeze pe valoarea returnată de la unshift.

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

Dacă trebuie să ștergeți o matrice de JavaScript, ce ar trebui să fac? Se știe că metoda de îmbinare are semnătura Array.prototype.splice.

Elimină din matrice rata de ștergere a componentelor, începând cu începutul. Dacă sunt transmise mai mult de două argumente, atunci toate argumentele ulterioare din matrice sunt plasate în locul celor care au fost eliminate. Dacă startul este minus, atunci indicele de la care se va relua retragerea va fi egal cu lungimea + startul. Revenirea la matrice este de la elemente de la distanță.

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

În cea mai simplă versiune, dacă doriți să eliminați o componentă cu index i, trebuie să întrebați matricea metodei splice cu parametrii i și 1.

În principiu, al doilea parametru al metodei de îmbinare nu este obligatoriu, dar comportamentul unei funcții cu un singur argument în fiecare browser este diferit.

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

În IE, nici o componentă nu va fi eliminată. În primele versiuni ale Opera, comportamentul nu poate fi prezis - un element cu indexul de start va fi eliminat. De aceea este întotdeauna necesar să transferați cel puțin două componente la această metodă.

tastele

Desigur, atunci când studiază JavaScript, matricele asociative, așa cum am menționat mai devreme, nu trebuie să fie trecute cu vederea. Acesta este un tip abstract de informații (interfața cu depozitul de date), care vă permite să salvați perechi de formular "(cheie, valoare)" și să sprijiniți operațiile de adăugare a unei perechi, precum și ștergerea și căutarea unei perechi de chei:

- FIND (cheie).

- INSERT (valoare, cheie).

- REMOVE (cheie).

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

Astfel, acțiunea FIND (cheie) returnează valoarea asociată cheii specificate sau un anumit obiect UNDEF, ceea ce înseamnă că lipsește valoarea asociată cheii specificate. Două alte acțiuni nu returnează nimic (cu excepția cazului în care operația a avut succes).

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

Apropo, suportul pentru astfel de rețele este disponibil în multe limbi de software interpretate la nivel înalt, cum ar fi PHP, Perl, Ruby, Python, Tcl, JavaScript și altele. Pentru limbile care nu au instrumente integrate pentru a lucra cu matrice asociative, au fost create un număr mare de implementări sub formă de biblioteci.

Un exemplu de matrice asociativă poate fi un director telefonic. În această variantă, valoarea este complexul "F. Adresa IO + "și numărul de telefon-cheie. Un număr de telefon are un maestru, dar o persoană poate deține mai multe numere.

Extensii asociative

Trebuie remarcat faptul că cele mai renumite extensii includ următoarele acțiuni:

  • Fiecare - "umbla" prin toate perechile salvate.
  • CLEAR - ștergeți toate înregistrările.
  • MIN - găsiți perechea cu cea mai mică valoare a tastei.
  • MAX - găsiți cuplul cu valoarea cheie cea mai mare.

În ultimele două variante, trebuie să specificați acțiunea de comparare a cheilor.

Implementarea matricelor asociative

Există multe implementări diferite ale matricei asociative. Implementarea cea mai comună se poate baza pe o matrice simplă, componentele cărora sunt perechi (valoare, cheie). Pentru a accelera acțiunile de căutare, puteți aranja componentele acestui matrice după cheie și puteți efectua o căutare utilizând căutarea binară. Dar acest lucru va spori intervalul de timp necesar pentru a adăuga o pereche nouă, deoarece va fi necesar să se "depărteze" componentele matricei pentru a împacheta o nouă înregistrare în celula goală apărută.

Cele mai cunoscute implementări se bazează pe arbori de căutare diferiți. De exemplu, în sala de lectură tipică C ++ tipică, harta hărții este implementată pe baza unui copac negru-roșu. În stilul Ruby, Tcl, Python se utilizează unul dintre tipurile de tabele hash. Există și alte implementări.

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

Este cunoscut faptul că, în implementări bazate pe tabele de dispersie, timpul mediu este definit ca D (1), care este mai bună decât în acțiunile bazate pe copaci de căutare. Desigur, acest lucru nu garantează o performanță de mare viteză de operațiuni separate: INSERT timp de acțiune, în cel mai rău caz, notat cu O (n). INSERT proces este efectuat pentru o lungă perioadă de timp, atunci când raportul de umplere atinge cel mai înalt punct, și există necesitatea de a reconstrui indexul tabel hash.

Apropo, aceste declarații hash rău că, pe această bază, este imposibil de a efectua o acțiune suplimentară rapidă MAX, MIN, și un algoritm pentru a căuta toate salvează perechi, în ordine descrescătoare sau chei ascendentă.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ro.atomiyme.com. Theme powered by WordPress.