Javascript-matrice și crearea acesteia
Caracteristicile arhitecturale majore ale acestui produs sunt dactilografiere dinamice și slab, memorie ideale funcții avtoupravlenie de programare, care sunt obiecte ale primei descărcarea de gestiune.
Ce este o matrice?
producție solidă
- var = goale []; // array gol;
- numers var = [4, 1, 2, 5]; // array cu cinci componente digitale;
- var dif = [1,5, fals, «text"]; // array cu trei elemente de diferite tipuri.
De regulă, nu este necesar să fie valori simple (rânduri și numere). Acesta poate fi, de asemenea, orice alte expresii, de exemplu, literali obiect, alte funcții și matrice.
A doua modalitate de a crea un designer de matrice este de a apela Array (). Pentru a-l invita la una din cele trei metode:
Înregistrarea, citirea și adăugarea de detalii ale șirului
Lungimea șirului
Pentru a afișa componenta finala a unei matrice, puteți utiliza proprietatea lungime.
Itera matrice de piese
Foarte des, proprietatea lungime este utilizată pentru a itera peste matrice de piese din ciclul:
- fructe var = [ «căpșuni“, "piersici", "mar", "banană"];
- pentru (var I = 0; i
- document.write (fructe [i] + «»).
În acest exemplu, se pare că componentele sunt aranjate în mod continuu și să înceapă cu prima parte, care deține indicele de zero. În cazul în care acest lucru nu este cazul, înainte de a apela fiecare element de matrice trebuie verificate în cazul în care este definit.
Ciclul este, de asemenea, folosit uneori pentru a inițializa componentele.
Creșterea și matrice trunchiere
Pur și simplu clar matrice ca: foo.length = 0.
În cazul în care calitatea rula o lungime mai mare decât valoarea sa actuală, la sfârșitul matrice va fi componente noi, neidentificate, care va crește la dimensiunea dorită.
Ștergerea o serie de detalii
matrice multidimensionale
matrice asociative
matrice de ieșire
Dacă programul pe care doriți să o afișați valorile tuturor componentelor, atunci este convenabil să se aplice instrucțiunile pentru. Interesant, regulile de variabilă contor pentru utilizare în același timp, ca și componentă a indicelui matrice.
Adăugarea și eliminarea componentelor
- La adăugarea unei proprietăți necunoscute digitale i, în cazul în care lungimea este egală sau mai mică decât i, lungimea este determinată să fie i + 1.
- Când modificați calitatea de lungime pentru a efectua următoarele etape: în cazul în care valoarea alocată este mai mică decât zero, apoi aruncă RangeError. Elimina toate indexurile numerice de calitate, care sunt egale cu noua lungime și mai mare.
Metode unshift, schimbare, pop și împinge
În ciuda faptului că componentele matrice sunt schimbate manual, multi recomanda sa utilizeze aceste metode built-in. Este această nuanță garantează valoarea corectă a calității și a lipsei de lungime în trecerile matrice. Apropo, calitatea lungimea corectă va corespunde cu numărul de componente.
Procesul se mută pentru a împinge capătul elementelor de matrice transmise. Pop înapoi proces dă componenta finală și îl elimină.
În general, în Internet Explorer sub cea de a opta versiune unshift se poate întoarce nedefinită, în alte browsere - noua valoare a lungimii. Așa că valoarea de întoarcere de la unshift mai bine să nu sperăm.
Adăugarea și eliminarea pieselor în mijlocul șirului
El se retrage din componentele matrice deleteCount, începând cu indexul de început. Dacă treci mai mult de două argumente, toate argumentele ulterioare în matrice sunt aranjate în locul lichidată. Dacă start este minus, indicele la care să-și reia retragerea va fi egală cu lungimea + start. Revenind la matrice de elemente de la distanță are loc.
De fapt, folosind metoda matisare, este posibil să se îndepărteze componentele din mijlocul unei matrice sau adăuga orice număr oriunde în matrice.
In cel mai simplu exemplu de realizare, în cazul în care este necesar pentru a elimina componenta cu indicele i, matricea trebuie să solicitați metoda lipitură cu parametrii i și 1.
În principiu, a doua opțiune la metoda de îmbinare nu este obligatorie, dar comportamentul funcției cu un argument pentru fiecare browser este diferit.
De exemplu, în Firefox, Opera in ultimele variante, toate detaliile, înainte de sfârșitul matrice vor fi eliminate în Safari și Chrome.
nici o singură componentă este eliminată în IE. Prima variație este imposibil de prezis comportamentul Opera - va fi eliminat un singur element cu indexul de început - 1. Prin urmare, este întotdeauna necesar în această metodă pentru a transmite cel puțin două componente.
- INSERT (valoare, cheie).
Se crede că într-o matrice asociativă nu se poate pentru a salva cele două perechi cu chei similare. Într-un cuplu de K + v v este valoarea asociată cu k-cheie. Semantica și aici cu operațiile de mai sus în diverse implementări ale unor astfel de matrice pot fi diferite.
Astfel, FIND operare (element) returnează o valoare asociată cu o cheie dată, sau un UNDEF obiect specific, ceea ce înseamnă că valoarea asociată cu o cheie dată, offline. Alte două acțiuni nu se întorc (cu excepția datelor despre dacă operațiunea a avut succes).
În general, în ceea ce privește interfață, tablou asociativ care este considerat ca fiind o matrice simplă, în care ca indici pot fi aplicate nu numai numere întregi, dar alte tipuri și valori - de exemplu, linii.
extensie asociată
Trebuie remarcat faptul că extensiile cele mai bine cunoscute se numără următoarele:
- FIECARE - «plimbare» pe toate salvează perechi.
- CLEAR - pentru a șterge toate intrările.
- MIN - pentru a găsi o pereche cu cea mai mică valoare cheie.
- MAX - pentru a găsi o pereche cu cea mai mare valoare cheie.
În ultimele două cazuri trebuie să indicate pe tastele cu efect de comparație.
Realizarea de tablouri asociative
Există mai multe implementări diferite ale matrice asociative. Cele mai frecvente Implementarea se poate baza pe o matrice simplu, ale cărei componente sunt perechi (tasta de valoare). Pentru a accelera funcțiile de căutare, puteți aranja componente ale matrice printr-o constatare cheie și punerea în aplicare folosind o căutare binară. Dar va crește cantitatea de timp necesară pentru a adăuga o nouă pereche, așa cum va trebui să „împingă“ componentele matrice care au apărut într-o celulă goală pentru a împacheta un record în stare proaspătă.
Cel mai cunoscut punerea în aplicare, bazate pe diferite arbori de căutare. De exemplu, într-o sală de lectură STL C ++ lingvistice Trailers harta tipic este implementat pe baza negru si mahon. În Ruby, stiluri, Tcl, Python folosește un singur tip de tabele de dispersie. Există alte aplicații.
În general, fiecare implementare are propriile avantaje și dezavantaje. Este important ca toate cele trei operațiuni au fost îndeplinite, în medie, și în cel mai rău perioada de nuanță aproximativ (log n), unde n - numărul curent pentru a salva alin. Pentru arbori de căutare concertate (inclusiv copaci negru și 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ă.