Array ()

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 () Parametrii

Puteț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

Array Object Proprietăți și metode de instanță

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()

Crearea matricelor

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.


Adăugarea și actualizarea valorilor în tablouri

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

 

Lungime vs. Index

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

 

Definiți matricele cu o valoare predefinită 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].


Setarea lungimii matricei poate adăuga sau elimina valori

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

 

Arrays care conțin alte array-uri (aka Multidimensional Arrays)

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ă.


Înaintea unui array, înapoi și înainte

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

 

Concluzie

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.

Cod