JavaScript masyvas ir jo kūrimas.

Šiame straipsnyje mes pažvelgti JavaScript masyvas, jo sudedamųjų dalių.JavaScript yra visiškai orientuota skriptų kalba, sukurta programavimą.Tiesą sakant, jis supranta kalbą ECMAScript (ECMA-262 standartą).

Kur naudoti JavaScript?Jis yra naudojamas kaip įterptais kalba, siekiant nustatyti, prie taikomi programinės įrangos kelią.Jį galima rasti naršyklėje: jis naudojamas ten, kaip skriptų kalba, kuri suteikia interaktyvumo į interneto puslapius.

svarbūs architektūriniai bruožai šiuo produktu yra dinamiška ir silpnas rašyti, avtoupravlenie atmintis, idealus programavimo funkcijos, kurios yra pirmos kategorijos objektus.

Tiesą sakant, JavaScript įtakos įvairių priežasčių, nes plėtra būtų sukurti kalbą, panašią į "Java", bet yra lengva naudoti programuotojai.Beje, "JavaScript" kalba neturi jokių įmonė ar organizacija, todėl ji skiriasi iš programos stilių naudojamų kūrėjai numerį.

Atkreipkite dėmesį, kad "JavaScript" - registruotas prekinis ženklas koncerno "Oracle Corporation.

Kas yra masyvas?

vadinamas Array duomenų tipą, parduotuvės numeruojamos vertybes.Kiekviena tokia reikšmė yra nurodyta kaip masyvo komponento, o skaičius, prie kurio komponentas yra vadinamas indeksas.JavaScript untyped masyvo.Tai reiškia, kad iš masyvo detalės gali turėti bet kokio tipo, su įvairiais daiktais, priklausančių tai pačiai masyvas, turi visiškai skirtingus stilius.

Be to, JavaScript masyvas yra dinamiška, ir jis sakė, kad fiksuoto dydžio nereikia deklaruoti.Pridėjus naujų dalių bet kuriuo metu.

Gamyba masyvo

Naudojant kalbą JavaScript, sukurti masyvą gana sunku.Yra du metodai tai.Pirmasis susijęs su masyvo vartoju pažodinį gamybą - iš laužtiniuose skliaustuose, kurios viduje dedamas daiktų sąrašą, padalytą iš kableliais.

  • var tuščia = [];// Tuščias masyvas;
  • numers = var [4, 1, 2, 5];// Masyvas su penkiais skaitmeninių komponentų;
  • var skirt = [1.5, klaidinga, «tekstas"];// Masyvo su trijų elementų skirtingų tipų.

Paprastai nėra reikalavimo, kad vertybės buvo paprastas (ir eilutės numeris).Taip pat gali būti bet kokios kitos išraiškos, pavyzdžiui, su sąlyga literał kitų funkcijų ir matricos.

Antrasis būdas sukurti dizainerio masyvas yra skambinti Array ().Pakviesti jam yra trys būdai:

  • Calling dizainerio be argumentai var B - naują Array ().Jame numatoma, kad tuščio masyvo ekvivalento pažodinis tuščias [] kūrimą.
  • dizaineris aiškiai rodo n komponentų masyvo reikšmę: var B = Array naują (1, 3, 5, 8, "linija", true).Šiuo atveju, dizaineris pateikti keletą argumentų, kurie yra konvertuojamos į naują masyvo komponentų sąrašą.Argumentai yra parašyta, kad masyvo yra vieta, kur nurodyta.
  • Apimties už vėliau priskiriant reikšmes.Tai daroma nurodant aptikimo masyvas skaičių apskliaustas: var B = nauja array (5).Šis aptikimo metodas apima kurio reikiamo skaičiaus komponentų (kiekvienas iš kurių yra išvardytos, kaip neapibrėžta) su priskiriant reikšmes diskusijǐ proceso galimybe masyvo paskirstymą.Ši forma yra paprastai naudojami iš anksto paskirstyti JavaScript masyvas, kurio ilgis yra žinomas iš anksto.

rašymo, skaitymo ir pridedant dalys masyvas

pasiekti masyvo komponentai, galite naudoti [] operatorių.Beje, visi JavaScript komponentai, pradedant nulio, sunumeruoti.Norėdami gauti reikiamus elementus, jo numeris nurodomas skliaustuose.Kaip taisyklė, elementai gali būti pakeistas.JavaScript pridėti prie masyvo, jums reikia paskirti naują vertę.

reikėtų pažymėti, kad JavaScript masyvo gali saugoti bet kokios elementų bet kokios rūšies numeris.

ilgis

Taigi mes žinome, ką JavaScript.Iš apskritai masyvo ilgis yra įdomus reiškinys.Panagrinėkime jį išsamiau.Visi diapazonai suprojektuotas dizainerio array (), ir nustatė dėka tiesiogine masyvo turėti tam tikrą objekto ilgį, kuris primena iš viso elementai išsaugotas.Kadangi masyvas gali būti neaišku detales (žymimas neapibrėžta), tikslesnis pasakymas skamba taip: Kokybės ilgis yra visada didesnis nei vienas iš didžiausių numeris (indeksas) komponentas masyvo.Kokybės ilgis reguliuojamas automatiškai, būna tiksli įvykio į naujų dalių masyvo.

atėjo galutinės komponento masyvo, galite naudoti funkciją ilgį.

paskutinis punktas turi indeksas yra viena mažiau nei masyvo dydį.Po skaičiuoti visada pradėti nuo nulio.O, tai Javaskriptą!Masyvo ilgis tai priklauso nuo tiksliai skaičiumi vienetų.Todėl, jei jūs nežinote, kiek jie turėtų būti, bet jums reikia kreiptis į galutinio elemento masyve, jums reikia taikyti rezultatai: v.length - 1.

biustas dalys masyvas

Labai dažnai, ilgis turtas naudojami pakartoti per dalių ciklo masyvo:

  • var vaisiai = [«Braškių", "persikas", "Apple", "bananų"];
  • už (var i = 0; i & lt; fruits.lenght; i ++);
  • document.write (vaisiai [i] + «...»).

Šiame pavyzdyje, atrodo, kad komponentai dedami nuolat ir prasideda pirmosios dalies, kuriai priklauso nulinis indeksą.Jei ne, prieš skambinant kiekvieną masyvo elementą, ar jis yra apibrėžtas turėtų būti patikrinta,.

ciklas taip pat kartais naudojamas inicijuoti komponentus.

Padidinti ir trumpinimą masyvo

įdomu, kaip naudojant "JavaScript" kalbą, styginių masyvo pridėti?Be darbo su matricomis procesą, ilgis ilgis automatiškai pagerina kokybę, kuri yra, kodėl mes turime jaudintis dėl to sau.Būtina nepamiršti, apie vieną detalę - ilgis objekto nėra tik skaityti yra prieinama, bet įrašo.Jei ilgis atributo į vertę, kuri yra pateikiamas srovės dydį kokybės, tada masyvo yra sumažintas iki iš anksto nustatyta reikšme.Neturi būti atkurtas - bet kokie komponentai, kurie nėra įtraukti į įvairių naujų indeksų, atsilošti ir jų reikšmės yra prarastas, net jei vėliau grįžti ilgį.

labai lengva valyti, nes masyvas: foo.length = 0.

Jei paleisti ilgis didesnis nei dabartinės vertės masyvo pabaigos kokybė bus naujas, neatpažintus elementus, kurie bus padidinti ją iki norimo dydžio.

šalinimas dalys masyvas

ištrinti operatorių nurodoma sudėtinės masyvo į neapibrėžta, tačiau ji vis dar egzistuoja ir šiuo atveju.Jei turite pašalinti JavaScript masyvo elementą, kad likusios dalys buvo perkeltos į sėdynę, turite naudoti vieną iš metodų, prognozuoti masyvo.Array.shift metodas () pašalina pirmasis komponentas, pop () - galutinė ingredientas, o metodas Splice () - viena ar keletas sudedamųjų dalių visoje masyvo spektrą.

Daugiamačių masyvų

manau, kad mes suprantame, apie tai, kas JavaScript mažai.Dvimatės matricos - kad reikia spręsti toliau.Jūs prisimenate, kad JavaScript masyvai kaip sudedamųjų dalių, gali būti kitų elementų?Ši funkcija yra naudojama multi-matmenų matricos gamybai.Norėdami aplankyti ingredientus į masyvų masyvas yra pakankamas, kad būtų taikomos laikiklius du kartus.

Asociatyvūs masyvų

Dabar mes išmokti JavaScript prekės ženklas naudoti asociatyvias masyvus.Norėdami tai mes turime pažvelgti į teoriją daryti: asociatyvūs matricos yra kartais vadinamas maišos lentelę.Jų dėka indeksai naudojami liniją.Tokių struktūrų, primenančių į iš paprasto objekto savybių pavadinimu, naudojimui, bet šiuo įgyvendinimo variante kai dirbama masyvo formatu.Kaip JavaScript nėra būdų veikti asociatyvias matricos, jie naudojami daug rečiau nei įprastai.Reikėtų pažymėti, kad jie vis dar gali būti naudinga duomenų laikymo ir supaprastinti saugojimą dalių, į kurią norite pasiekti.

produkcijos masyvo

Ir dabar mes studijuoti JavaScript?Iš prie lange (ekrane) matricoje, išėjimas, ir išėjimo reikšmės masyvo komponentų.

Jei programą, kurią norite, kad būtų rodomas visų komponentų vertes, tai yra patogu taikyti instrukcijas.Įdomu tai, kad kintamo skaitiklis naudojamas šio indekso komponentų masyvas taisykles.

Valymas

Norėdami filtruoti masyvas JavaScript, jums reikia naujo ilgis:

  • var myArray = [1, 2, 5, 23];
  • myArray.length = 0.

po parodo aiškią vietą () įgyvendinimą, "JavaScript" sistemą, prototipas:

  • aiški: function () {;
  • this.length = 0;
  • grąžinti tai;
  • }.

pridėjimas ir pašalinimas komponentai

Na, mes ir toliau toliau tirti šį įdomų kalbą JavaScript.Masyvo elementas ir gali būti pašalintas ir pridėta tuo pačiu būdu, kaip ir įprastinės savybių kitų objektų.Tačiau yra keletas skirtumų: o pridedant skaitines savybes galima keisti ilgį kokybę, o ilgis turto modifikacija gali būti šalinamos skaitinio kokybę.Iš esmės, algoritmas nustatant savybes tokių masyvų yra:

  • Kai įdėti nežinomo savybes skaitmeninio i, jei ilgis yra lygus ar mažesnis nei I, ilgis yra pasiryžusi būti i + 1 ,.
  • Kai keičiate ilgio kokybės gaminami taip: jei priskirti vertė yra mažesnė už nulį, tada meta RangeError.Likviduota visas skaitmeninius kokybės indeksus, kurie yra lygus naujos ilgio, ir didesnis nei.

Paprastai pašalinti JavaScript masyvo elementas yra lengva.Galų gale, net nustatant ilgį, būtina pašalinti iš "ekstra" sudedamosios dalys.Taigi valymas galimybė masyvo.Jei kintamasis yra priskirtas naują tuščią masyvo nors priežasties, nėra tenkinama, ir ji yra būtina, kad iš naujo srovę, jo kokybė yra pakankamas, kad būtų priskirti reikšmė yra nulis ilgio.

metodai unshift pamaininio, pasipriešinimo ir stumti

Nepaisant to, kad masyvo komponentai keičiami rankiniu būdu, daugelis rekomenduoti taikyti built-in metodus.Būtent šis niuansas garantuoja teisingą vertę, kokybę ir ilgio trūksta masyvo praeina.Beje, tinkamo ilgio kokybė bus pritaikyti sudėtinių dalių.

eksporto metodas persikelia į masyvo išlaikytas detales pabaigoje.Metodas Pop suteikia atgal į galutinės komponento ir pašalina jį.

Paprastai Internet Explorer pagal aštuntą versija unshift gali grįžti neapibrėžta, kitose naršyklėse - nauja vertė ilgio.Taigi ant grįžimo vertės iš unshift yra geriau ne viltį.

pridėjimas ir pašalinimas dalių viduryje masyvo

Jei norite ištrinti JavaScript masyvas, jums reikia imtis?Yra žinoma, kad šis būdas yra parašas splaisingo Array.prototype.splice.

Jis pasitraukia iš masyvo deleteCount komponentų, pradedant indekso pradžios.Jei perkelta daugiau nei du argumentus, visi vėlesni argumentai patalpinami masyve vietoj likviduota.Jei pradžia yra minus, iš kurios indekso atnaujinti atšaukimas bus lygus ilgio + pradėti.Grąžina elementų masyvas ateina iš nuotolinio valdymo pulto.

Iš tiesų, taikant metodą, sumegzti, komponentai gali būti pašalintas iš aikštės viduryje masyvo, arba pridėti bet kurį skaičių visame masyvo.

Paprasčiausiu atveju, jei jums reikia pašalinti komponento i indekso, turi prašyti masyvo splaisingo metodą su parametrais I ir 1.

Iš esmės, antras variantas prie sukirpimo metodas nėra privaloma, tačiau vienas argumentas elgesį kiekvieno skirtingo naršyklėje,

Pavyzdžiui, "Firefox", per pastaruosius variantų Opera, Safari ir Chrome visi elementai bus atšaukta iki masyvo pabaigos.

IE nebus likviduota bet kokį komponentą.Pirmasis variantas yra neįmanoma prognozuoti operos elgesį - bus pašalintas vienas gabalas su rodyklės pradžios - 1. Todėl, jūs visada turėtų praeiti metodo bent du komponentai.

Raktai

Žinoma, mokymosi Javaskriptą, asociatyvūs matricos, kaip minėta anksčiau, taip pat turite nepamiršti.Tai abstraktus pobūdžio informaciją (sąsaja su duomenų saugyklos), kuri leidžia jums išsaugoti poros formą "(raktinės, vertė)" ir pridėti rėmimo operacijų pora, taip pat ištrinti ir ieškoti raktų poras:

- surasti (raktas).

- ĮRAŠYTI (vertė, raktas).

- Nuimkite (raktas).

Manoma, kad į masyvą nepavyko išsaugoti dvi poras su tuo pačiu raktu.Kurį K + vv vadinamas vertės, susijusios su rakto k pora.Semantika ir pavadinimai virš operacijas įvairių realizavimo tokių masyvų gali skirtis.

Taigi, FIND (rakto) poveikis grąžina vertę, susijusią su tam tikru raktu, arba konkretaus objekto undef, tai reiškia, kad vertė susijusi su tam tikru raktu nėra.Du kiti veiksmai negrįžta nieko (išskyrus duomenis, kad jūs sėkmingai įvykdytas šį sandorį).

Apskritai, nuo atsižvelgiant į sąsają, kuri yra masyvą laikomas paprastu masyvo, kuriame, kaip indeksai, gali būti taikomas ne tik sveikieji skaičiai, ir kitų rūšių vertybių taško - pavyzdžiui, linijas.

būdas, parama tokiems matricos turi daug išaiškino aukšto lygio programavimo kalbų, tokių kaip PHP, Perl, Ruby, Python, TCL, JavaScript ir kt.Dėl kalbų, kurie neturi built-in įrankiai dirbti su asociacijų matricas sukūrė milžinišką skaičių diegimas į bibliotekas forma.

pavyzdys masyvą gali tarnauti kaip telefonų knygoje.Šiame įgyvendinimo variante iš "F. rinkinio vertėIO + E ", o raktas - telefono numeris.Telefono numeris yra vienas meistras, bet vienas asmuo gali turėti kelis kambarius.

Asocijuotas pratęsimo

reikia pažymėti, kad garsiausių plėtra apima:

  • Each - «go» išgelbėti visas poras.
  • aiškus - ištrinti visus įrašus.
  • min - rasti porą su mažiausiu raktu.
  • MAX - rasti porą su svarbiausi.

Per pastaruosius dvejus atvejais jums reikia ant klavišų nurodyta poveikį palyginimui.

diegimas Association masyvai

Yra daug įvairių diegiamų iš masyvą.Dažniausiai įgyvendinimas gali būti grindžiamas paprasta masyvo, kurio sudedamosios dalys yra dujos (vertė raktas).Siekiant paspartinti paieškos veiksmai galima užsisakyti ant masyvo komponentų ir įgyvendinti pagrindinį išvadą, naudojant dvejetainį paiešką.Bet tai padidins laiko, kiek jums reikia pridėti naują porą, kaip reikės į "stūmimo" iš masyvo, kad atsirado langelį tuščią pakuoti šviežią įrašą komponentai.

geriausiai žinomas įgyvendinimas, remiantis įvairių paieškos medžiai.Pavyzdžiui, tipiškas skaitykla STL C ++ žemėlapyje konteinerį realizuojama remiantis juoda ir raudonmedžio pagrindu.Atsižvelgiant į rubinas, TCL stiliaus, Python naudojamas maišos lentelės tipą.Taip pat yra kitų įgyvendinimo.

Apskritai, kiekvienas įgyvendinimas turi savo privalumų ir trūkumų.Svarbu, kad visi trys operacijos buvo įvykdytos pagal vidurkį ir blogiausiu laikotarpiu niuansas apie (log n), kur n - dabartinis skaičius sutaupyti par.Dėl suderintų paieškos medžiai (įskaitant juodos ir raudonos medžių), ši sąlyga yra įvykdyta.

žinoma, kad įdiegtų remiantis maišos lentelės, apibrėžtų kaip vidutiniu laiko O (1), kuri yra geriau, nei veiksmų, remiantis paieškos medžio.Žinoma, tai negarantuoja didelės spartos vykdymą tam tikras operacijas: iš INSERT trukmė yra nurodyta kaip blogiausio atvejo O (n).ĮRAŠYTI procesas yra atliekamas ilgą laiką, kai muitas santykis pasiekia aukščiausią tašką, ir ten yra poreikis rekonstruoti maišos indeksas lentelė.

būdu, šie pareiškimai maišos blogai, kad šiuo pagrindu neįmanoma atlikti greitai papildomų veiksmų Max, Min ir Sankryþos algoritmas išsaugoti visus poras mažėjančio arba padidinti raktus.