JavaScript, nizovi: opis

javascript je suvremeni programski jezik, jedinstven je u smislu sintakse i semantike. Ona ima specifičnosti, ali je jednostavna za korištenje i učinkovita kada je u pitanju razvoj dinamičnog i pouzdanog mrežnog resursa.

[img] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_681.jpeg [/img]
matrica javascripta - suvremeni oblik predstavljanja podataka, koja se razlikuje od sličnih struktura drugih jezika. Iskustvo u podnošenju i obradi informacija za javascript uvijek je bilo značajno. Upravo ovdje u pregledniku radi dijalog s klijentom. Ovdje je važno brzo rastaviti liniju podataka s poslužitelja i obojiti je potrebnim oznakama. Jezici poslužitelja formiraju sadržaj i strukturu stranica, ali njihovo pravilno korištenje jezika preglednika.

Prezentacija informacija: varijable i podaci

Profesionalni razvojni inženjer koristi varijable u jednostavnim slučajevima kada "radi" za () {}, "kontrolira" dok () {}, "koristi" dizajn switch () {case "" :}, U svim drugim slučajevima informacije su predstavljene strukturama podataka.

http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_102.jpeg
Rijetko dovoljno podaci su predstavljeni jednostavnim skupom varijabli. To je statična struktura koju ujedinjuju zajedništvo u imenovanju i korištenju. Rad s skupovima varijabli ograničen je količinom pruženih informacija, pa se koristi za jednostavne algoritme i lokalne funkcije. javascript array je dinamičnija i prostranija varijanta varijable kada je to podatkovna struktura. Indeksiranjem niza, na primjer, po vrijednosti, vremenu ili drugom parametru, možete imati različit sadržajza svaki indeks. Niz može biti skup (specifičnih struktura) varijabli, koje će, postavljene u drugi niz, predstavljati dinamiku takve strukture po parametru ili vremenu. Konačno, možete stvoriti niz objekata ili sustava objekata - konceptualnu kombinaciju podataka, koja ima strukturu, sadržaj i skup metoda koje "same po sebi" otkrivaju odgovarajuća svojstva.

U svim slučajevima, informacije se pojavljuju strogo, formalno i dostupne za obradu putem jezika. Samo ako kod manipulira "samim sustavom" objekata i ne dopušta nijedan dizajn izvan metode nekog objekta, možemo reći da postoji mogućnost obrade i kreiranja informacija koje nisu formalizirane ili formalizirane u procesu izvršenja algoritam.

Konstrukcije sintaktičkih jezika

U prvoj aproksimaciji javascript polja sličan je sintaktičkim strukturama drugih jezika. Semantika je također ekvivalentna, osim oblika njezina izraza. Možete koristiti sintaksu i semantiku javascripta i uspješno riješiti svaki složeni zadatak.
[više] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_383.jpeg
Šanse za postizanje pune prenosivosti koda prilagođavanje stvorenog resursa promjenjivim uvjetima primjene, adekvatan odgovor na svaku neplaniranu promjenu ulaznih informacija i pravila njegove obrade, nema, ali gotovo svaki zadatak koji može postaviti modernog kupca može se uspješno riješiti. Standardna sintaksa jezika definira javascript matrice, funkcije i metode, prilično velike, ali u praksiObično se koristi samo dio.
[thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_264.jpeg
forEach - najzanimljivija metoda polja. javascript daje developeru da definira svoju vlastitu funkciju za obavljanje posla sa svakim elementom polja. Nema pojma 'prekida', to jest, za Svaka treba smatrati operaciju na svim elementima niza.
  • aData.za svaku (funkcija (val, ind, arr) {});
  • Ovdje 'val' je 'ind' element - njegov indeks, a 'arr' je zapravo 'aData' niz. Funkcija može izvesti sve radnje na elementima niza. Ako ima neko značenje, to će biti programerska operacija, a ne sintaksa jezika, tj. Polje će imati ne samo sadržaj nego i operacije koje su mu dostupne u skladu s njegovom svrhom u općem kontekstu algoritma.

    Izvan sintakse

    Korištenje niza javascript objekata može ići dalje od sintakse. Formalno, svaka objektna varijabla i svaka struktura njezine metode leži u sintaksi jezika, ali u kontekstu objektno orijentiranog programiranja postoji sustavni efekt - nova kvaliteta, koja nudi vlastitu sintaksu: "neovisni" odnosi između objekata. Klasični koncept razvoja programa: prevođenje formalnog algoritma u specifične sintaktičke strukture jezika. Na bilo kojem mjestu koda postoji čvrsta veza s onim što je bilo prije ovog mjesta i što će se dogoditi nakon njega.


    http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_475.jpeg
    Objektivno orijentirana formula izgleda fundamentalno drugačije. Postoje objekti koji imaju sadržaj i svojstva. To je ono što osigurava međusobnu povezanost (kod koji implementiraju). Nema kodataj odnos ne bi trebao biti. U javascriptu element polja i mehanizam pristupa njemu imaju izvorni kontekst. Svi elementi su ekvivalentni, ali posljednji je poseban. Niz nije objekt, ali razmatrajući polje kroz prizmu njegova posljednjeg elementa, u kontekstu mehanizma pristupa njemu, može se dobiti objekt koji mijenja njegovu bit i svojstva - to je značajno izostavljanje situacijskog (modernog) koncepta objekta. Orijentirano programiranje, neizravno implementirano od strane programera javascript jezika.

    array array: kreiranje

    Idealna i prekrasna struktura stvaranja strukture:
  • var aData = []; //je u biti uvijek polje;
  • može aData = {}; //u svom sadržaju, možda asocijativni niz;
  • Možete pisati sve više i više "intelektualno":
  • var aData = new Array ();
  • ili prilično "komplicirano":
  • var aData = novi niz
  • .
  • javascript ne inzistira na obveznom navođenju broja elemenata i ne nameće nikakva pravila o indeksiranju, veličini i vrsti elemenata. Iz tog jednostavnog razloga nije preporučljivo da se njihova prava zloupotrebljavaju ograničavanjem: sva polja moraju biti predstavljena i korištena na najjednostavniji način.

    Korištenje nizova

    Svaki element niza ima indeks - numeričku vrijednost od 0 do 2 32, ali ne bi se trebao približiti toj slici. Praktičan i pragmatičan JavaScript niz je desetaka, stotina, tisuća elemenata, ali ne više. Ako vam je potrebno više, bolje je prvo pogledati algoritam ili tehnički zadatak, a ako se ništa ne dogodi, tek tada možete dizajnirati višemilijunsku masivnu strukturu u dubinama preglednika.
    [palac] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_256.jpeg
    Indeksi elemenata niza nisu uvijek dosljedni. Na javascript, izbrišite element niza - to znači da je "rupa". U procesu korištenja niz može dobro postati "sito" od indeksa, što ne utječe na njegovu sposobnost za rad, spremanje drugih elemenata. javascript uskraćen za lakonski PHP dizajn: $ aData [] = "novi element"; i predlaže rigidnu naznaku onoga što se dodaje i u kojem se elementu (s kojim indeksom) mijenja vrijednost. Vrsta stavke ne igra ulogu. Niz može sadržavati svu dopuštenu sintaksu, u kojem redoslijedu i asortimanu. Metode push () i pop () eliminiraju nedostatak "$ aData [] =", ali privlače pažnju razvojnog programera na ideju posljednjeg elementa i podsjećaju na koncept stog. Sličan par metoda - unshift () i shift () - radi s prvim elementom polja, prebacujući druge elemente prema većim indeksima.
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_437.jpeg
    Za javascript, duljina polja je relativni pojam. Ne odražava uvijek stvarni broj elemenata, a kada se vezanje na metodu duljine, na primjer, u petlji, uvijek mora provjeriti postoji li zapravo stavka s točnim indeksom.

    Veličina polja

    Sustavi su "uvijek jednodimenzionalni", ali svaki sustav se sastoji od unutarnjih podsustava, a sam po sebi je dio nečega više globalnog. Slično općem konceptu sustava, javascript nije dvodimenzionalni niz, ali se lako može stvoriti dodavanjem drugih polja kao elemenata niza.
    [img] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_268.jpeg [/img]
    Indeksiranje za unutarnje nizove generira se prirodno: "aData [i] [j] [z]" ali uvijek bolja ideja:
  • var aElement = aData [i]; //odabir unutarnjeg niza;
  • aElement [j] =; //koristimo element internog niza.
  • U javascriptu dodajte bilo koju varijablu u bilo koji polje dopušteno u nizu i kojim redoslijedom. Također možete dodati u interni niz prema općim pravilima. Da biste pristupili elementima, možete koristiti slijed zagrada [], ali je uvijek bolje ponovno dodijeliti, ograničeno na samo jedan par [] u svakom izrazu. Višedimenzionalni javascript nizovi su normalni, osigurani sintaksom i mogu se u potpunosti primijeniti u praksi. Ali, kao iu drugim jezicima, najbolje je kada su mjerenja manja, a čitljivost koda veća. Programi su, naravno, pisani za računala, tumače i kompilatore, ali oni pišu i ljude koji prate ljude, a što je viša dostupnost koda za autora i treće strane, to je praktičnije.

    Dodavanje i brisanje stavki

    Sintaksa javascripta omogućuje dodavanje elemenata nizu jednostavnim kreiranjem novog indeksa:
  • aData
    = "neka vrijednost";
  • aData [100] = "posljednja stavka". Nakon ovih operatora, javascript aData niz će imati 101 element. Numeriranje počinje s indeksom 0. Za metodu duljine nije važno koliko je elemenata zapravo bilo u nizu u vrijeme izvršavanja "aData [100] =;".
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_459.jpeg [/thumb]
    koristiti njegove metode pop () ili shift (). U prvom slučaju, rezultat može trajati = aInfo.pop () 'lubenica', ali u nizu ostaje: 'jabuka', 'kruška', 'mandarina'. U drugom slučaju var var = aInfo.shift () 'jabuka', dok se ostali elementi pomiču na početak. Ova opcija je vrlo učinkovita kada je niz objekata javascripta objekt koji mijenja semantiku i sadržaj. Mehanizam odabira elementa s njegovim uklanjanjem omogućuje vam da koristite trenutni element polja i odmah idete na sljedeći. Kao što je u stog: pokupila iz stog, koristi - i dobio pristup sljedećoj stavci. Kada koristite javascript operator, možete izbrisati element polja kao što je ovaj:
  • izbrišite aInfo

    .
  • Nakon izvršenja ovog operatora, element u samom slučaju ostat će u nizu, ali će njegova vrijednost biti 'nedefinirana'. Pomoću metode slice, polje javascripta može se "izrezati":
  • aData = aInfo.slice (0 2).
  • Izvorni aInfo niz će ostati nepromijenjen, a samo će 'jabuka' i kruška pasti u podatke. Ako pišete:
  • aData = aInfo.slice
    ;
  • tada će u nizu aData biti samo 'mandarina' i 'lubenica'.

    Sortiraj redove i elemente niza

    javascript operacije: razvrstavanje niza, transformaciju niza u red, formiranje matrice i promjenu redoslijeda elemenata najviše u potražnji. Izvođenje ovih operacija provodi se metodama:
  • sortiranje,
  • spajanje (pretvaranje niza u niz),
  • razdvajanje (pretvaranje niza u niz),
  • obrnuto (redoslijed stavki).
  • Ovo je najzanimljiviji i najkorisniji alat za obradu nizova i nizova. Zanimljiva značajka: za javascript, element polja i niz su specifične komplementarne kvalitete. Ako ne uzmemo u obzir karakteristične značajke suvremenih jezika: svaka varijabla je uvijek linija, to jestuvijek se može smatrati nizom, a transformacija niza u red i leđa vrlo je popularna i učinkovita operacija.
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_9910.jpeg
    Posebno originalna upotreba spojenih /split: kombiniranje elemenata niza u niz se događa s jednim razdjelnikom (često praznim, to jest, elementi se spajaju u jedan red), a inverzna transformacija u niz obavlja drugi graničnik.
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_4811.jpeg
    Ako ne uzmete u obzir provedbu metoda spajanja i podjela, tada pomoću ovog para možete stvoriti velike algoritme. Funkcija reverse () primjenjuje se izravno na niz i mijenja redoslijed kojim su elementi praćeni obrnutim redoslijedom. Funkcija sort () sortira elemente u izlaznom nizu, vraća rezultat sortiran abecednim redom. Ako je kao parametar u sortiranju (funkcija (a, b) {; return return;}) za prijenos funkcije, tada možete poredati redoslijed sortiranja prema vlastitom algoritmu. Ova funkcija treba vratiti '0', ako su 'a' i 'b' ekvivalentni, '-1' - ako 'a' mora prethoditi 'b' i '1' ako 'b' mora prethoditi 'a'. Ako reverse () nema priliku dobiti točan rezultat, tada sortiranje ima značajan algoritam vrijednosti za njegovo izvršenje i testirani pisani kod. Posebno je važno to zapamtiti. kada niz sadrži znakove (retke) nacionalne abecede.

    Pametni nizovi i vlastiti indeksi

    Za javascript je asocijativno polje primitivni oblik objekta. Ovdje jednostavno nema metoda, ali postoje samo parovi "ključ" i "vrijednost". Označiti ovokoristi se niz vitičastih zagrada.
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_5212.jpeg
    Ovaj primjer koristi niz cSortCols, elemenata koja uzima tri vrijednosti:
  • "- bez sortiranja;
  • " u "- sortiranje uzlazno (gore);
  • 'd' - razvrstavanje. Međutim, ovisno o sortiranoj sorti (u ovom primjeru, web-lokacija je razvijena za putnički promet na rutama): putnici, prijevoznici, autobusi ili gradovi, stoga se tablica stavki može razvrstati samo po određenim stupcima. Postoji određeni sadržaj: cUsersSort, cCompaniesSort, cBusesSort, ili cCitiesSort.Stvaranjem asocijativnog niza na javascript, možete ići puno dalje.Na sljedećem primjeru sortiranja je privatni solver za vrlo privatni zadatak: izlaz iz situacije u kojoj se ne koristi vaša JavaScript (sort) funkcija. - vrlo je dobro, a upotreba skupova varijabli je vrlo nepraktična. Ali nitko ne zabranjuje upotrebu naziva varijabli kao indeksa. Niz u kojem su indeksi predstavljeni imenima varijabli je odlična mobilna podatkovna struktura. Ne mora nužno imati sve indekse, ali će u svakom mjestu biti u pravom redoslijedu. Programer može dizajnirati "pametne" nizove koji će prikazati potrebne strukture podataka na pravom mjestu. U ovom slučaju, ne možete ići na punu upotrebu objekata, samo koristiti njihove sposobnosti u fazi opisivanja strukture i sadržaja podataka.

    Praksa rada s nizovima

    Za razliku od poslužiteljskihjezici, koji su uvijek jasni što procesirati i što bi trebao biti rezultat, u javascriptu zahtijeva specifično višerazinsko razmišljanje. Stranica web-lokacije može generirati događaje i skripte na najneočekivaniji način. Čak i kada je tehnički posao na gradilištu savršeno izveden, a dijalog s posjetiteljem ne može ići izvan utvrđenog okvira, događaju se nesreće.
  • http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_1713.jpeg
    Značajka javascripta je da je element stranice mogu aktivirati jedan ili drugi proces. Zbog toga će se promijeniti određeni podaci, nizovi, objekti. Drugi proces treba imati ideju o tome što se promijenilo. U idealnom slučaju, procesi trebaju biti oslikani na objektima i nizovima tako da svaki događaj, koji inicira jedan proces, određuje sve što je potrebno za sve ostale procese ovisne o njemu. Moguće je ne prihvatiti objektno orijentirano programiranje i ne nastojati osigurati da sve stranice web-mjesta budu opremljene potpuno opremljenim sustavima objekata koji u međusobnoj interakciji međusobno, a ne postoji niti jedna linija koda izvan metoda takvih objekata, ali čak i Slučaj isključivo klasičnog stila razvijanja javascript polja, posebno asocijativnih i naoružanih implementacijom funkcije forEach, odličan je alat za pouzdan i praktičan kod.

    Povezane publikacije

    JS nizovi. JS objekt. Višedimenzionalni JavaScript nizovi Višedimenzionalni, asocijativni JavaScript nizovi. Rad s JavaScript nizovima Izraziti JavaScript: Opis značajke JavaScript platno: opis, značajke, primjeri, recenzije Što su dinamički C ++ nizovi? PHP objekti i nizovi: array push & pop