O matrice este o listă ordonată de valori create în mod obișnuit cu intenția de a intra în buclă prin intermediul valorilor indexate numeric, începând cu indicele zero. Trebuie să știți că matricele sunt seturi numerice comandate, spre deosebire de obiectele care au nume de proprietăți asociate valorilor în ordine non-numerică. În esență, matricele utilizează numerele ca o cheie de căutare, în timp ce obiectele au nume de proprietăți definite de utilizator. JavaScript nu are adevărate matrice asociative, dar obiectele pot fi folosite pentru a atinge funcționalitatea matricelor asociative.
În următorul eșantion, stochez patru șiruri de caractere myArray
că pot accesa folosind un index numeric. Mă comparăm și contrazic myArray
la un obiect literal care imită o matrice asociativă.
Mostră: sample133.html
Arhivele pot deține orice tip de valori și aceste valori pot fi actualizate sau șterse în orice moment.
Dacă aveți nevoie de hash (aka associative matrix), un obiect este cea mai apropiată soluție.
Un Array ()
este doar un tip special de Obiect()
. Acesta este, Array ()
instanțele sunt în principiu Obiect()
cu câteva funcții suplimentare (.lungime
și un index numeric încorporat).
Valorile conținute într-o matrice sunt denumite în mod obișnuit elemente.
Array ()
ParametriiPuteți să transmiteți valorile unei instanțe de matrice constructorului ca parametri separați prin virgulă (Array nou ("foo", "bar");
). Array ()
constructorul poate prelua până la 4,294,967,295 parametri.
Cu toate acestea, dacă este trimis un singur parametru la Array ()
constructor și valoarea respectivă este un număr întreg ("1", "123" sau "1.0"), va fi utilizată pentru a configura lungime
din matrice și nu va fi folosit ca o valoare conținută în matrice.
Mostră: sample134.html
Array ()
Proprietăți și metode Array ()
Obiectul are următoarele proprietăți (fără a include proprietățile și metodele moștenite):
Proprietăți (Array.prototype
):
prototip
Exemplele de obiecte array au următoarele proprietăți și metode (fără a include proprietățile și metodele moștenite):
Proprietăți de instanță (var myArray = ['foo', 'bar']; myArray.length;
):
constructor
lungime
Metode de instanță (var myArray = ['foo']; myArray.pop ();
):
pop ()
Apăsați()
inversa()
schimb()
fel()
lipitură()
unshift ()
concat ()
a adera()
felie()
Ca majoritatea obiectelor din JavaScript, un obiect array poate fi creat folosind nou
operator împreună cu Array ()
constructor, sau folosind sintaxa literală.
În exemplul următor, creez myArray1
array cu valori predefinite folosind Array ()
constructor, și apoi myArray2
folosind notația literală.
Mostră: sample135.html
Este mai frecvent să vedeți o matrice definită utilizând sintaxa literală, dar trebuie remarcat faptul că această scurtătură nu acoperă decât utilizarea Array ()
constructor.
În practică, literalul matricei este de obicei tot ce veți avea vreodată nevoie.
Indiferent de modul în care este definit un matrice, dacă nu oferiți valori predefinite matricei, acesta va fi în continuare creat, dar pur și simplu nu va conține valori.
O valoare poate fi adăugată la un tabel la orice index, în orice moment. În exemplul care urmează, adăugăm o valoare indexului numeric 50 al unei matrice goale. Ce zici de toți indicii înainte de 50? Ei bine, așa cum am spus, puteți adăuga o valoare unei matrice la orice index, oricând. Dar dacă adăugați o valoare la indexul numeric 50 al unei matrice goale, JavaScript va completa toate indexurile necesare înainte de a fi cu nedefinit
valorile.
Mostră: sample136.html
În plus, având în vedere caracterul dinamic al JavaScript și faptul că JavaScript nu este puternic tastat, o valoare de matrice poate fi actualizată în orice moment și valoarea conținută în index poate fi orice valoare legală. În exemplul următor, schimb valoarea de la indexul numeric 50 la un obiect.
Mostră: sample137.html
O matrice începe indexarea valorilor la zero. Aceasta înseamnă că primul slot numeric pentru a ține o valoare într-o matrice arată myArray [0]
. Acest lucru poate fi un pic confusingif creez o matrice cu o singura valoare, indicele valorii este 0 in timp ce lungimea matricei este 1. Asigurati-va ca intelegeti ca lungimea unui tablou reprezinta numarul de valori continute in matrice , în timp ce indexul numeric al matricei începe de la zero.
În următorul exemplu, valoarea șirului albastru
este conținut în myArray
array la indexul numeric 0, dar deoarece matricea conține o valoare, lungimea matricei este 1.
Mostră: sample138.html
lungime
Așa cum am menționat mai devreme, prin trecerea unui singur parametru întreg la Array ()
constructor, este posibil să predefineze lungimea matricei sau numărul de valori pe care acesta le va conține. În acest caz, constructorul face o excepție și presupune că doriți să setați lungimea matricei și să nu pre-populați matricea cu valori.
În următorul eșantion, am creat myArray
array cu o lungime predefinită de 3. Din nou, configuram lungimea matricei, fără a trece-o o valoare care să fie stocată la indexul 0.
Mostră: sample139.html
Furnizarea unui predefinit lungime
va da fiecărui index numeric, până la lungimea specificată, o valoare asociată de nedefinit
.
S-ar putea să vă întrebați dacă este posibil să creați o matrice predefinită care să conțină doar o singură valoare numerică. Da, este prin utilizarea formei literale var myArray = [4]
.
lungime
proprietatea unui obiect de matrice poate fi folosită pentru a obține sau seta lungimea unui matrice. După cum sa arătat anterior, se va adăuga o lungime mai mare decât numărul real de valori conținute în matrice nedefinit
valori la matrice. Ceea ce s-ar putea să nu vă așteptați este că puteți elimina de fapt valorile dintr-o matrice prin setarea valorii lungimii la un număr mai mic decât numărul de valori conținute în matrice.
Mostră: sample140.html
Deoarece o matrice poate să dețină orice valoare validă JavaScript, un matrice poate conține și alte matrice. Când se face acest lucru, matricea care conține matrice încapsulate este considerată o matrice multidimensională. Accesarea matricelor încapsulate se face prin înlănțuirea consolei. În următorul exemplu, creăm un literal matrice care conține o matrice, în interiorul căreia creăm o altă matrice literală, în interiorul căreia creăm o altă matrice literală, conținând o valoare de șir la indexul 0.
Mostră: sample141.html
Acest exemplu de cod este mai degrabă proastă, dar obțineți ideea că matricele pot conține alte matrice și puteți accesa matricile încapsulate pe o perioadă nedeterminată.
Cea mai simplă și arguably cea mai rapidă cale de a realiza o buclă pe o matrice este folosirea bucla în timp.
În codul următor, vom buclei de la începutul indexului până la final.
Mostră: sample142.html
Și acum am buclei de la sfârșitul indexului până la început.
Mostră: sample143.html
Acum, dacă vă întrebați de ce nu vă prezint buclele aici, este pentru că în timp ce buclele au mai puține părți în mișcare și cred că sunt mai ușor de citit.
Și acest lucru completează acest articol pe tablouri.