iterează

Deoarece nu este necesar să se sorteze elementele

Înainte de a vă spune cum să itera elementele de matrice, este de a spune, deoarece acestea nu rezolva. Prea distribuite iterează prin intermediul ciclului de-in.







Ce este atat de rau pentru-in pentru a bucla prin elementele de matrice? Faptul că el trece prin toate proprietățile obiectului cu nici un atribut DontEnum. Aceasta are ca rezultat cel puțin două probleme.

În primul rând, proprietățile nu trebuie să fie sortate în nici un fel, și anume caietul de sarcini limbaj promite că, în acest caz, elementele sunt judecate în ordine de la 0 la lungime - 1. Deși în acest moment toate JS-motoarele sortate proprietățile matrice, și unele browsere sortate chiar proprietăți numerice ale obiectelor convenționale. Prin urmare, această problemă nu este foarte relevant.

În al doilea rând, după cum sa spus, atunci treci peste toate proprietățile matrice, nu numai indicii numerice. De obicei, în astfel de cazuri noi spunem că noi nu ar trebui să polueze Array.prototype metode proprii, dar chiar și fără ea nu poate fi probleme. Să luăm, de exemplu, matricea returnat de meci șir.







Ie metoda standard returnează un tablou de șiruri, în care, pe lângă un indice numeric are mai multe alte proprietăți. Prin urmare, în cazul în genul unei astfel de matrice folosind pentru-in. vom obține nu numai indici numerici.

Cum pentru a sorta elementele de matrice

Cel mai mic indice matrice posibil - 0. maximă posibilă - lungime - 1. Prin urmare, pentru a trece prin toate elementele de matrice, trebuie să treacă prin numere de la 0 la lungime - 1 inclusiv. Și pentru acest ciclu există pentru.

În cazul în care matrice nu are lacune, adică în cele mai multe cazuri, este de un astfel de ciclu este suficient. Cu toate acestea, în cazul în care ați mutat-o ​​matrice rară, este necesar să se verifice dacă există un element cu indicele curent.

Cea mai structură adecvată pentru a itera prin elementele de matrice este

Și nu pentru a scrie un astfel de design, este mai bine să folosească metoda foreach