JavaScript este limba browserului, deci nu fiecaresarcina are nevoie de propriile variabile, matrice și obiecte. În multe cazuri, simpla utilizare a DOM (Document Object Model) este suficientă. Dar chiar și în astfel de cazuri, descrierea corectă a datelor utilizate face întotdeauna programul mai perfect, ușor de utilizat și mai rafinat.
Cuvintele contează, dar denumind ceva în program,ceea ce urmează să fie folosit și modificat, este oportun să ne limităm la cuvintele „date” și „variabile”. Ei bine, ceea ce vor fi - JavaScript Array, Object sau doar Integer - depinde de sarcină, mai precis de locul specific din ea.
Logica codului și a datelor
Programatorii sunt obișnuiți să manipuleze datele.Au existat și până astăzi există variabile într-o gamă largă de reprezentări (șiruri, simboluri, numere, date...), de regulă, matricele și (ultimele decenii) obiectele au fost poziționate separat.
La un moment dat, tastare puternicădatele au devenit o relicvă, iar acum, în fiecare limbă modernă, datele pot schimba nu numai conținutul, ci și tipul. La bine sau la rău, se va vedea, dar tastarea puternică are caracteristicile sale pozitive. Totuși, dacă s-a întâmplat, atunci de ce să nu „retipezi” deloc întregul proces?
Semantic, adică dincolosintaxă, orice variabilă are o valoare. Și se schimbă în orice stare de lucruri. Secvența modificărilor este deja o cantitate, care în termeni JavaScript este o matrice de elemente.
Cu alte cuvinte, dacă programatorul a decis să nu se atașezevalorile tipului de variabilă și i-a încredințat limbajului grija unei conversii adecvate și în timp util a tipului, atunci de ce să nu simplificam deloc: există doar date, ei bine, ce vor fi ele la punctul de aplicare - un număr, un șir , o matrice sau un obiect - acesta este la latitudinea codului să decidă. Și mai corect: dat ar trebui să determine prin el însuși ce se poate face cu el și cum exact.
Date și sintaxă simple
Variabilele simple sunt reprezentate de diferite tipuri. Conversiile de tip sunt efectuate automat atunci când este necesar.
În acest exemplu, o variabilă simplă s este declarată, încare va forma rezultatul lucrului cu JavaScript Array aCheck. Variabila i este descrisă direct în bucla aCheck. Aici, elementele matricei (create folosind constructul push JavaScript Array) sunt trei valori de diferite tipuri. Prima buclă tipărește numele tipurilor din șirul s, a doua - valorile reale. Conversia tipului se face automat.
Despre numărul de elemente din matrice
În JavaScript, Array nu este o matrice asociativă. Accesul la elemente se face prin taste numerice, numărul maxim de elemente este de 232, dar nu ar trebui să experimentați cu cantitățile limită de elemente.
Un algoritm bun are întotdeauna o cantitate observabilă de date, iar constructul de lungime JavaSscript Array a fost introdus în sintaxă deloc pentru a controla dimensiunea unui tablou în contextul conținutului său.
Valoarea aCheck.lungimea nu va fi întotdeauna numărul real de elemente. În JavaScript, un Array poate conține cât mai mult din ceea ce a fost trimis acolo, dar uneori trebuie să muncești din greu pentru a afla exact cât.
În acest exemplu, expresia aCheck[5] extinde matricea la șase elemente. Speranța că funcția de lungime va da valoarea 4 nu este justificată.
tablouri asociative
Formal, JavaScript Arrays nu poate fi decât obișnuit, adică accesul la elemente se realizează prin indici numerici. Cu toate acestea, în realitate, ideile asociative pot fi folosite.
O sarcină foarte simplă și banală de sortare a șirurilortabelele pe coloane pot fi rezolvate prin intermediul unui tablou asociativ. Un punct într-un cerc lângă numele unei coloane înseamnă că nu există sortare, o săgeată în sus înseamnă descendență, iar o săgeată în jos înseamnă ascendent. Făcând clic pe o coloană se schimbă direcția (implementarea JavaScript: Sort Array).
În acest exemplu, în matricea cSortCols,direcția de sortare pentru fiecare coloană (S, C, W, ...). Valorile direcției numai u, d. În construcția for in, totul este cusut într-o singură linie (atât codul coloanei, cât și direcția de sortare). Această buclă trece prin toate elementele matricei și nu este nevoie să utilizați funcția JavaScript Array length.
Crearea și sortarea unei matrice în JavaScript
O practică frumoasă este să scrieți „var xMass = [];” sau„var yArr = {};”. În primul caz se va defini un tablou obișnuit, în al doilea caz unul asociativ. De asemenea, puteți utiliza varianta JavaScript New Array(), dar această construcție este de obicei folosită în alte scopuri, în principal pentru lucrul cu obiecte.
Matricea creată poate fi completată imediatvariabile, dar, de regulă, este important să umpleți și să manipulați matricea în dinamică, în timpul execuției programului. Dacă aveți nevoie să sortați, puteți utiliza construcția JavaScript Sort Array, care nu este foarte flexibilă, dar vă permite să controlați procesul prin propria funcție.
Apelarea: arr.sort() are ca rezultat sortarea în ordinea caracterelor tabelului ASCII. Funcția inversă - permutări ale elementelor: arr.reverse(). Această funcție inversează ordinea elementelor matricei.
În ambele cazuri, cuvântul arr reprezintă o matrice.În primul caz, puteți folosi propria funcție de sortare, adică apelarea arr.sort(myfunc(a,b)) va apela propria dvs. funcție myfuct, care ar trebui să returneze rezultatul în funcție de date: a și b. Dacă primul este mai mic decât al doilea, atunci -1, dacă invers, atunci 1, iar dacă a = b, atunci 0. Aici criteriul de comparație este definit de programator în funcția myfunc.
Ideea elementului activ
O funcție numită în timpul sortării poateefectuează diverse acțiuni. Din punctul de vedere al constructului în care este aplicat, nu este necesar să răspundă la parametrii de intrare, iar rezultatul său nu sunt doar trei numere -1, 1 și 0. Fiind aplicat într-o matrice ciclic fiecărui element, acesta poate reconstrui matricea.
Dacă ne imaginăm că o matrice este o anumită semnificație, o anumită structură de date, atunci JavaScript Array se transformă într-o variabilă cu un conținut schimbător.
Dacă luăm ca bază folosirea primului sauultimul element al matricei ca conținut, apoi execuția funcției de sortare poate transforma matricea astfel încât primul/ultimul element să devină un element diferit, așa cum este cerut de condițiile problemei.
O astfel de idee ne poate permite să reproiectăm algoritmuldecizii în așa fel, în special, încât să nu fie nevoie să se folosească if () {} else {} și switch () { case "": ...; cazul "": ...; ...}.
Prin manipularea conținutului unei matrice, puteți muta elementele din cadrul acesteia, modificând astfel funcționalitatea externă care poate fi accesată prin primul sau ultimul element.
JavaScript Array: utilizare ilogică
Orice limbaj este bun pentru ca permite nu numaimodifica structura și conținutul datelor, dar și codul propriu-zis. Ideea de a considera o variabilă ca o abstractizare, adică fără a lua în considerare inițial statutul ei de tip, deschide noi orizonturi.
Începând cu abstracția, o variabilă, o matrice sau un obiect vă permite să reprezentați procesul de prelucrare a datelor în funcție de aceste date și în dinamică.
De exemplu, atunci când citiți un text, se poate descrie un dat„text”, care va fi împărțit în propoziții – criteriul „punct” (în context, adică ținând cont de sintaxa acceptată a propozițiilor). Propozițiile vor fi împărțite în fraze (în context, virgulă și sintaxă adecvată). Alte cuvinte și litere.
Rezultat:Se poate lucra la nivel de texte, propoziții, cuvinte. La fiecare nivel, puteți crea funcții de „unicitate” care vă permit să căutați același lucru sau similar. Puteți crea funcții pentru aplicarea propozițiilor, frazelor altor date.
Programarea modernă nu mai este o dogmă, darfaptul că construcțiile sintactice create în ultimele decenii și experiența acumulată deschid noi orizonturi neprevăzute de dezvoltatorii de limbi nu a fost încă descoperit și utilizat.