JS nizovi: asocijativni niz u nizu, niz objekata. JS: uklonite element polja

Slaganje podataka i stvaranje funkcija s rekurzivnim algoritmima mjerilo je za određivanje kvalitete rada programera. Uobičajeni algoritam nikada nije bio najbolje rješenje u smislu razvoja, otklanjanja pogrešaka i modifikacija. Samo funkcionalno dovršen, algoritam koji osigurava rekurziju distribuirane obrade podataka, može se smatrati razvojnim rješenjima.

Značajke DOM + javascript

Stranica učitana u preglednik formira stablo DOM elementa koje ima izravan pristup javascriptu. Ovdje su JS nizovi najjednostavniji objekti, osim prirodne funkcionalnosti, implementiraju ideju stog (shift /unshift i push /pop). Dodjela prvog i zadnjeg elementa kao posebnog svojstva polja igra važnu ulogu u oblikovanju opisa podataka i algoritama.


Rekurzivna javascript funkcija može koristiti dodatne sintakse i semantike koje nisu dostupne u drugim jezicima. Anonimne značajke omogućuju vam da opremite sintaktičke jezične konstrukcije vlastitom funkcionalnošću. Događaji se događaju na elementima DOM stabla, a njihovi rukovatelji mogu se mijenjati. JS kodni rad je paralelno izvršavanje mnogih procesa, čija dinamika određuje ukupnu funkcionalnost učitanu u pregledniku, stranicu i radnje posjetitelja. Funkcionalnost, implementirana u obliku objektnih metoda, zajedno s "podjelom" odgovornosti za obradu informacija između klijenta i poslužitelja može smanjiti opterećenje na poslužitelju i pozvati JS-kod.

Varijable, nizovi iobjekti

Opis podataka određuje algoritam njihove uporabe. S takvim izrazom, istina je da su oba podatka primarna i obrnuto: primarni algoritam. "Nitko ne može pogriješiti" - u istoj sferi odluku donosi onaj koji stavlja znak interpunkcije ili nešto drugo.


Prirodni jezik karakterizira najviša razina slobode:
  • "izražavanje značenja" onima koji govore;
  • "razumijevanje značenja" onih koji slušaju.
  • "Izražavanje značenja" nije niže od "slobode korištenja" drugog izvornog govornika. javascript je programski jezik. Prema tome, nema slobode i ne može biti. Programiranje je kruta sintaktička konstrukcija i točno značenje. Čak i uvjet da se tip varijable može odrediti samo u vrijeme njegove uporabe ne daje programeru nikakvu slobodu.
    Logika javascripta je takva da je moguće razlikovati varijablu od niza samo u kontekstu opisa ili uporabe, a to je zagonetna sloboda. No, mogućnost transformacije ništa, na bilo koji način daje programer potrebne alate za izgradnju slobodnih struktura podataka i algoritama za njihovu obradu. Logika javascripta slična je logici drugih jezika, ali je na tome njegova sličnost s drugim jezicima gotova. Što se može učiniti na JS-u može se preciznije reproducirati na drugim jezicima, što su bliže javascriptu u smislu funkcionalnosti i razvoja.

    Sintaksa i semantika javascript polja

    JS nizovi su objekti. Međutim, drugi objekt je jednostavna varijabla, ali u pravom trenutku vremena može postati sustav objekata. Jednostavna varijabla je i niz ako mu date pravufunkcionalnost.
    Dvije verzije opisa polja ili objekta smatraju se dovoljnima: "[]" i "{}". Kvadratna zagrada je jednostavan niz ili objekt bez metoda. Slika zagrada je asocijativni niz ili objekt s metodama. Ali to su samo opće odredbe. Sintaksa je mnogo jednostavnija:
    Korištenje ove sintakse može biti mnogo složenije. Prva dva primjera su obični nizovi: oni se stvaraju u petlji koja sadrži slova latinice, koja se razlikuju samo u slučaju slova i indeksa. U prvom slučaju, indeks je redni broj slova u abecednom redu, u drugom slučaju indeks je kod slova. Treći primjer stvara asocijativni niz. Ovdje je slovo indeks, a njegov kôd je vrijednost. Ako želite, možete zbuniti sve. Drugi primjer odmah pokazuje značajku javascripta. Kôd slova "A" = 65. Na toj jednostavnoj osnovi u nizu automata postavljene su 64 nesigurne vrijednosti.

    Funkcionalnost nizova

    JS nizovi nemaju toliko metoda, nego sortiraju, za svaku, filtriraju, mapiraju, svaki /neki, reduciraju /reduciraju pravo zaslužuje posebnu pozornost. Ovdje možete koristiti vlastite funkcije kako biste odredili željenu radnju nad elementima niza. Znakovi redaka - Praktičan oblik predstavljanja nizova. Niz se uvijek može pretvoriti u niz i obrnuti. JS nizu u nizu pristupa se metodom:
  • sStr = aData.join ('' razdvajač '')
  • Svi elementi niza aData postaju jedan redak. Pri spajanju možete koristiti "razdjelnik" koji može biti prazan, s jednim znakom ili nizom znakova."Separator" ne ometa liniju:
  • aData = sStr.split ('' razdjelnik '')
  • Koristite drugi "graničnik". Ovaj mehanizam omogućuje izgradnju prilično zanimljivih algoritama obrade informacija, iako je glavna svrha transformacije "JS nizova - linija" u prijenosu i pohranjivanju podataka. Linija je kompaktnija od polja, prikladnije je pohraniti u bazi podataka, itd.
    Nizovi mogu biti dopunjeni drugim nizovima (metoda concat), mijenjati redoslijed sljedećih elemenata na obrnuto, sortirati (sortirati) itd. zanimljiva i praktična funkcionalnost leži u prvom i posljednjem elementu.

    Organizacija stogova podataka

    došla je posljednja, prva je otišla - ideja stog. JS polja su uspjela osigurati funkcionalnost ove ideje. Ako stavite novi element u polje:
  • aData.push (oNew)
  • On će biti na kraju. Ako izvučete posljednji element polja (pop metoda), on će biti uklonjen iz njega. Sljedeća operacija brisanja elemenata bit će preusmjerena na zadnji element.
    U stvari, dodavanje elemenata u polje (push) ga povećava, a ekstrakcija elemenata (pop) ga smanjuje. Važno je da obje metode rade na kraju polja. Sličan pomak /unshift par radi s prvim elementom niza, prebacujući druge elemente naprijed ili natrag. Prema logici stvari, bolje je i jasnije raditi s posljednjim elementom niza, ali u nekim zadacima važno je raditi s prefiksima, a ne sa sufiksima. Ako spojite elemente u niz i mehanizam stog, možete dodatno proširiti funkcionalnost sintakse javascripta. Na primjer, svimaelement niza voća (jabuka, kruška, naranča, mandarina,):
  • Zatim gurnite /pop na element polja - radite s svojstvima određenog voća: boja, tip, datum isporuke
  • Očistite sve voće u jednu cjelinu - string i push /pop su svojstva trenutne dostupnosti voća: ukupna težina, sastav, broj
  • Iz niza možete izdvojiti podmase (metoda slice) i izlazni niz ostaje netaknut. Međutim, ako izbrišete element niza u js, tada će se izravno promijeniti na mjestu. Rezultat metode uklanjanja elemenata nije spajanje.
    Važno. Prilikom brisanja: prvi parametar je indeks, prva stavka se briše, drugi parametar je broj izbrisanih stavki. Kada se izdvaja submaster: prvi parametar je indeks prvog elementa, drugi parametar je indeks posljednjeg. Nakon primitka, novi JS nizovi primaju broj elemenata koji su između prvog i drugog parametra, uključujući.

    Višedimenzionalni nizovi javascripta

    javascript ne ograničavaju programera u količini dimenzija polja. Ništa ne sprečava stvaranje struktura (indeksi se uzimaju iz broja trgovine, trgovine /police, naziva proizvoda /skupine robe):
  • aShop ['NoShop'] ['BoxF'] ['Voće'] ['Voće']; //plodovi
  • aShop ['NoShop'] ['BoxB'] ['Jagode'] ['Berry']; bobice
  • aShop ['NoShop'] ['BoxP'] ['Krompir'] ['Krompir']; //krumpir
  • Radi. Međutim, ako u prva dva modela postoji nekoliko varijanti vrsta voća (bobičastog voća), onda nema mjesta za varijantne sorte i potrebna je druga dimenzija. U trećem slučaju moguće je odrediti sorte krumpira, a vrste jednostavno ne postoje. Očito, u praksi, takvo rješenjeglomazna, radno intenzivna preinaka i ispitivanja. Nije praktično. Najbolje je kada je dimenzija jedna, najviše dvije - u vrlo rijetkim slučajevima. Dinamičko i praktično rješenje na JS-u: niz objekata. Ovdje možete odmah identificirati objekt trgovine, koji će biti objekti police (skladišta), a police će biti objekti po vrstama, sortama, skupinama.Ovaj pristup odmah postoji dinamika za svaku razinu objekata. Opcionalno možete dodati ili ukloniti niz, JS nudi metode ulančavanja /ekstrakcije i ekstrakcije na mjestu. U prvom slučaju, skupina robe, na primjer, seli iz skladišta u trgovinu ili natrag, au drugom slučaju samo prodaje i nestaje iz trgovine (uklonjena iz polja).

    Udruge i asocijativni nizovi

    Posljednjih godina programiranje teži jednostavnosti. Borba za programske jezike za preživljavanje pokazala je ne onu koja je pobijedila, već onu koju je jednostavnost ključ za pravi uspjeh. Svi jezici dopuštaju stvaranje dimenzija prostornih struktura, ali u praksi moderni programeri koriste dvije varijante:
  • jednostavan (indeksni) niz;
  • asocijativno polje.
  • Oba konstrukta imaju indekse od nule do trenutnog broja elemenata. Drugi vam također omogućuje pozivanje na vrijednost s određenim nazivom. Prema općoj logici jezika, JS asocijativni niz je uređen skup parova. Štoviše, ako je potrebno, par "ključ" - "vrijednost" može se mijenjati na mjestima. Ako postoji niz od 16 parova: brojevi heksadecimalnog brojevnog sustava, a zatim kreiranje jednostavnog niza od šesnaest znamenki od 0 do 15 može biti kaovrijednosti elemenata za odabir znakova (brojevi nisu): ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'] i pretvaraju broj iz decimalnog broja u heksadecimalni i natrag. Udruge - unutarnje svojstvo podataka. Programer može koristiti asocijacije za organiziranje struktura podataka na razini objekta. U tom kontekstu, glavni fokus je na stvaranju stvarnih objekata, unutar kojih postoje asocijativni nizovi na svojstvima podataka.

    Objekti s nizom

    Objekt u kojem se nalaze nizovi svojstava sugerira da se oni koriste u smislu njihovih metoda. Suština (vrste, sorte, svojstva jabuka i krušaka su različiti, oni se još više razlikuju od citrusa ili bobica. Svako voće ili bobice (po vrsti i sorti, na primjer) je jedinstveno. za sve vrste i vrste.Kako roba stiže u trgovinu, popunjava se niz primljenih objekata. Ovaj niz ima svoje funkcije pristupa informacijama sadržanim u njemu i duplira metode njegovih objekata.
    U takvoj odluci moguće je, na primjer, odmah izračunati broj robe, kako na određenom položaju, tako i na svim pozicijama. Možete prikazati bilo koji raspoloživi proizvod bez obzira na njegovu vrstu i raznolikost. Radit će točno onaj proizvod na koji je upućena žalba. U praksi, takav objektno-orijentirani pristup omogućuje vam da se ne okrećete programeru u fazi rada sustava objekata, jer ne zahtijeva programiranje. Programer je predvidiosvojstva, vrste, stupnjevi i metode rada s proizvodom. To je dovoljno za prodaju svega gore navedenog i više: breskve, krastavci, patlidžani, grožđice, orašasti plodovi

    Sustav objekata u dinamici

    Razumijevanje suštine informacija koje se obrađuju iznimno je važno. Što je potpunija ideja o predmetnom području i stvarnim objektima kojima manipulira, točnije možete opisati podatke i razviti algoritme za njihovu obradu. Idealna slika kvalitativno ispunjenog zadatka: sastavljen je popis elementarnih objekata i objektnih sustava. Uspostavljena su sva svojstva svakog objekta i veza između njih.
    Svaka metoda svakog objekta je funkcionalno dovršena i rješava samo jedan zadatak. Objekt se može rješavati samo metodama, pa stoga nije moguće ometati njegovo funkcioniranje izvana. Uobičajeno rješenje je javascript funkcija vezana od svojstava DOM elemenata za funkcije koje pristupaju objektima samo kroz njihova svojstva. Ako je potrebno, razviti nešto elaborirati ili sučelje sa sustavom stvorenih objekata, ili bilo koji objekt po potrebi.

    Povezane publikacije