Javascript-matrise og dens skapelse.

I denne artikkelen vil vi se på Javascript-array, dets komponenter.Javascript er et perfekt orientert skriptspråk, skapt for programmering.Faktisk, innser han språket ECMAScript (ECMA-262-standarden).

Hvor å bruke Javascript?Den brukes som en innebygd språk for å bestemme banen til individet programmet.Det kan finnes i nettleseren: det er det brukt som et skriptspråk som gir interaktivitet til nettsider.

viktige arkitektoniske trekk ved dette produktet er dynamiske og svak skrive, avtoupravlenie minne, ideelle programmeringsfunksjoner, som er gjenstand for den første kategorien.

Egentlig i Javascript påvirket av forskjellige grunner, fordi utviklingen ville skape et språk som ligner på Java, men lett å bruke av programmerere.Forresten, ikke Javascript ikke eier noe selskap eller organisasjon som gjør den forskjellig fra en rekke program stiler brukes av webutviklere.

Merk at Java - et registrert varemerke for bekymring Oracle Corporation.

Hva er en matrise?

heter Array datatype som lagrer nummererte verdier.Hver slik verdi er referert til som en del av matrisen, og nummeret som en komponent kalles indeks.Javascript-utypet array.Dette betyr at detaljene i matrisen kan ha hvilken som helst type, med ulike elementer som tilhører samme matrise, har helt forskjellige stiler.

tillegg er Javascript-matrise dynamisk, og det sies at en fast størrelse er det ikke nødvendig å erklære.Etter å legge nye deler til enhver tid.

Manufacturing rekke

Bruke språket Javascript, for å skape en rekke ganske vanskelig.Det finnes to metoder for dette.Den første innebærer produksjon av en matrise ved hjelp av en bokstavelig - av hakeparenteser, inne som er plassert en liste over elementer, delt med komma.

  • Var tom = [];// Tom array;
  • numers = Var [4, 1, 2, 5];// Array med fem digitale komponenter;
  • Var diff = [1,5, falsk, «text"];// Matrise med tre elementer av forskjellige typer.

Vanligvis er det ingen krav om at verdiene var enkelt (og linjenummer).Det kan også være noen andre uttrykk, for eksempel, med forbehold litteraler andre funksjoner og arrays.

andre måten å skape en rekke designeren er å ringe Array ().Inviter ham er tre metoder:

  • Calling designer uten argumenter: var b - ny Array ().Det ser for seg etableringen av en tom matrise tilsvar bokstavelig tom [].
  • Designer har klart angi verdien av n komponenter matrise: var b = new Array (1, 3, 5, 8, "en linje», sant).I dette tilfellet, designeren presentert en argumentliste, som blir omdannet til komponentene i den nye matrise.Argumenter er skrevet til matrisen er stedet der angitt.
  • Scoping for senere å tilordne verdier.Dette gjøres ved å spesifisere påvisning rekke tall i parentes: var b = new Array (5).Denne metoden for deteksjon omfatter tildeling av en oppstilling av det nødvendige antall av komponentene (hver av disse er oppført som udefinert) med mulighet for å tilordne verdier i prosessen for diskusjon.Dette skjemaet brukes vanligvis til å forhånds fordele Javascript-matrise hvis lengde er kjent på forhånd.

skriving, lesing og legge deler rekke

nå de komponentene i array, kan du bruke [] operatør.Forresten, alle komponentene i Javascript, og starter med null, nummerert.For å oppnå de nødvendige elementene, er nummeret angitt i parentes.Som regel kan elementer endres.En Javascript for å legge til array, må du tilordne en ny verdi.

bør bemerkes at i Javascript matrisen kan lagre en rekke elementer av noe slag.

Lengde

Så vi vet hva Javascript.Lengden av matrisen generelt er et interessant fenomen.La oss vurdere det nærmere.Alle områdene er designet av en designer Array (), og identifisert takket være en bokstavelig array å ha en bestemt eiendom lengde, som minnes det totale antallet elementer er bevart.Siden matrisen kan være usikker på detaljene (merket med udefinert), høres et mer nøyaktig uttrykk slik: Kvalitet lengde er alltid større ved en enn det største nummeret (indeks) komponent array.Kvalitet lengde justeres automatisk, bor nøyaktig på forekomst i en rekke nye deler.

kom til den siste komponenten av tabellen, kan du bruke funksjonen lengde.

siste element har en indeks er en mindre enn størrelsen av rekken.Etter teller alltid starte fra scratch.Oh, dette Script!Lengden av matrisen avhenger av den nøyaktige antall elementer.Derfor, hvis du ikke vet hvor mye de skal være, men du må slå til siste elementet i matrisen, må du søke posten: v.length - 1.

Bust deler rekke

Svært ofte er lengden eiendommen som brukes til å iterere over rekken av deler i syklusen:

  • Var frukt = [«Strawberry", "fersken", "eple", "banan"];
  • for (var i = 0; i & lt; fruits.lenght; i ++);
  • document.write (frukt [i] + «...»).

I dette eksemplet fremgår det at komponentene er plassert fortløpende og begynne med den første delen, som eier nullindeks.Hvis ikke, bør før du ringer hvert element i matrisen skal kontrolleres, enten det er definert.

syklus er også noen ganger brukt til å initial komponenter.

Zoom og avkutting rekke

lurer på hvordan du bruker Javascript i en streng rekke å legge til?I prosessen med å jobbe med matriser, forbedrer lengden på lengden automatisk kvaliteten, og det er derfor vi trenger å bekymre deg for det selv.Det er nødvendig å huske om en detalj - lengden eiendommen ikke er skrivebeskyttet er tilgjengelig, men for ordens skyld.Hvis lengden attributten til kvaliteten på den verdi som gir størrelsen av strømmen, da matrisen er redusert til en forutbestemt verdi.Noen komponenter som ikke er inkludert i den nye serien av indekser, hvile, og deres verdier er tapt, selv om senere returnere tilbake lengde - ikke gjenopprettes.

svært enkel å rengjøre fordi matrisen: foo.length = 0.

Hvis kvaliteten på løpelengde større enn sin nåværende verdi ved slutten av tabellen vil være nye, uidentifiserte gjenstander som vil øke den til ønsket størrelse.

Fjerne deler rekke

slette operatøren angir komponent matrisen til udefinert, men det fortsetter å eksistere i dette tilfellet.Hvis du må fjerne et element av Javascript-matrise slik at de resterende delene ble fordrevet for et sete, må du bruke en av metodene for å forutsi array.Metode Array.shift () fjerner den første komponenten, pop () - den siste bestanddel, og fremgangsmåten skjøten () - en eller en rekke komponenter hvor som helst i matrisen.

flerdimensjonale Arrays

tror vi forstår litt om hva Javascript.Todimensjonale matriser - som må tas opp ytterligere.Du husker at Javascript arrays som komponenter kan inneholde andre elementer?Denne funksjonen brukes for fremstilling av multi-dimensjonale matriser.For å besøke ingrediensene i en rekke arrays er tilstrekkelig til å søke brak to ganger.

assosiative matriser

Nå lærer vi hvordan Javascript varemerke bruker assosiative arrays.For å gjøre dette må vi se nærmere på teori: assosiative matriser kalles en hash table.Takket være dem, indeksene brukt linje.Bruken av slike strukturer som minner om bruken av navnet på egenskapene for et enkelt objekt, men i denne utførelsesform, når man arbeider i en matrise format.Som i Javascript er det ingen måter å operere assosiative matriser, blir de brukt mye sjeldnere enn vanlig.Det bør bemerkes at de fortsatt kan være nyttig for lagring av data og forenkle lagring av deler som man ønsker å få tilgang til.

utgang rekke

Og nå vil vi studere i Javascript?Utgangssignalet fra matrisen til dialogboksen (på skjermen), og utgangsverdiene for komponentene i matrisen.

Hvis programmet du vil vise verdiene av alle komponentene, så det er praktisk å bruke instruksjonene for.Interessant er det variable-counter brukes i reglene for denne indeksen komponent array.

Rens

å filtrere utvalg av Javascript, må du nullstille lengde:

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

følgende viser gjennomføringen av reisemålet klart (), i en Javascript-rammeverk, Prototype:

  • klart: function () {;
  • this.length = 0;
  • returnere dette;
  • }.

Legge til og fjerne komponenter

Vel, vi fortsetter å utforske videre denne interessante språket Javascript.Gruppeelement og kan fjernes og legges på samme måte som konvensjonelle egenskapene til andre objekter.Men det er noen forskjeller: mens du legger de numeriske egenskaper kan endre kvaliteten på lengde, og kan kastes numerisk kvalitet endring av lengden eiendommen.I prinsippet algoritmen innstillingen egenskaper i slike matriser er:

  • Når man legger de ukjente egenskaper av digitalt i, hvis lengde er lik eller mindre enn i, er lengden bestemt å være i + 1 ,.
  • Når du endrer kvaliteten på lengden er laget som følger: dersom den tildelte verdien er mindre enn null, kaster deretter RangeError.Likvidert alle numeriske kvalitet indekser som er lik den nye lengden, og større enn.

Vanligvis fjerne elementet av Javascript matrise er enkelt.Tross alt, selv innstilling av lengden, er det nødvendig å fjerne fra de "ekstra" komponenter.Derav rengjøring alternativ i rekken.Hvis variabelen er tildelt en ny tom matrise av en eller annen grunn, ikke er oppfylt, og det er nødvendig å tilbakestille gjeldende, er dens kvalitet tilstrekkelig til å tilordne en verdi av null lengde.

metoder avskifte, shift, pop og presse

tross for at komponentene i matrisen blir endret manuelt, mange anbefaler dette til å gjelde innebygde metoder.Det er denne nyanse sikrer korrekt verdi kvaliteten og den manglende lengde i rekken passerer.Forresten, riktig lengde kvaliteten vil matche antall komponenter.

trykk metode beveger seg til enden av matrisen føres til detaljene.Metode pop gir tilbake til den siste komponenten og fjerner den.

Vanligvis i Internet Explorer under det åttende versjonen avskifte kan returnere udefinert, i andre nettlesere - den nye verdien av lengde.Så på returverdien fra avskifte er bedre ikke å håpe.

Legge til og eliminering av delene i midten av tabellen

Hvis du vil slette en rekke Javascript, må du ta?Det er kjent at fremgangsmåten har en signatur skjøt Array.prototype.splice.

Han trekker seg fra utvalg deleteCount komponenter, som begynner med indeks start.Hvis du overførte mer enn to argumenter, er alle etterfølgende argumenter plassert i rekken i stedet for likvidert.Hvis start er minus, til indeksen som gjenoppta tilbaketrekking vil være lik lengden + starte.Returnerer en matrise av elementer kommer fra fjernkontrollen.

Faktisk, ved bruk av metoden skjøten, komponentene kan fjernes fra midten av tabellen, eller legge til en hvilken som helst tall hvor som helst i matrisen.

I det enkleste tilfellet, hvis du trenger å fjerne en komponent med indeks i, må be array skjøten metoden med parametrene i og 1.

I prinsippet er ikke obligatorisk det andre alternativet på skjøten metoden, men oppførselen til ett argument i hver nettleser annerledes.

For eksempel i Firefox, i de siste varianter av Opera, Safari og Chrome alle elementene vil bli trukket tilbake før slutten av tabellen.

i IE vil ikke likvidert noen komponent.Den første varianten er umulig å forutsi oppførselen til Opera - vil bli fjernet ett stykke med indeks start - 1. Derfor bør du alltid passere i metoden minst to komponenter.

Keys

kurs, læring Javascript, assosiative matriser, som nevnt tidligere, du må heller ikke miste av syne.Dette er en abstrakt form for informasjon (grensesnittet til datalageret), som lar deg lagre par av formen "(nøkkel, verdi)" og legge til et par støtteoperasjoner, samt slette og søke etter nøkkelpar:

- FINN (key).

- INSERT (verdi, key).

- FJERN (key).

Det antas at i assosiativ array klarer å redde to par med samme nøkkel.I et par k + vv kalt verdien assosiert med nøkkel k.Semantikk og navnene ovenfor virksomhet i forskjellige implementasjoner av slike matriser kan være forskjellig.

Dermed blir effekten av FIND (key) returnerer verdien assosiert med en gitt nøkkel, eller en bestemt gjenstand udef, noe som betyr at verdien assosiert med en gitt nøkkel mangler.To andre handlinger ikke returnere noe (med unntak av data som du med hell har utført denne transaksjonen).

Generelt, fra det synspunkt av grenseflaten, noe som er en assosiativ array betraktet som en enkel matrise, karakterisert ved at som indekser kan brukes ikke bare til heltall, og andre typer av verdier - for eksempel linjer.

måte, støtte for slike arrays har mange tolket høyt nivå programmeringsspråk som PHP, Perl, Ruby, Python, Tcl, Javascript og andre.For språk som ikke har innebygde verktøy for å arbeide med assosiative matriser, skapt et stort antall implementeringer i form av biblioteker.

eksempel på en assosiativ array kan tjene som en telefonkatalog.I denne utførelsesform er verdien av et sett med "F.IO + e ", og nøkkelen - telefonnummeret.Et telefonnummer er en master, men en person kan eie flere rom.

Associated forlengelse

bør bemerkes at den mest berømte av utvidelsen omfatter følgende:

  • HVER - «gå» for å redde alle parene.
  • CLEAR - for å slette alle oppføringene.
  • MIN - finne et par med lavest nøkkelen.
  • MAX - finne paret med den mest avgjørende.

I de to siste tilfellene må du på tastene indikert effekter av sammenligning.

implementeringer av assosiative arrays

Det finnes mange forskjellige implementeringer av den assosiative array.Den vanligste implementering kan være basert på en enkel matrise hvis komponenter er de damper (verdi nøkkel).For å øke hastigheten søke handlinger kan bestilles på komponentene i rekken og implementere hovedfunn ved hjelp av en binær søk.Men det vil øke mengden av tiden du trenger for å legge til et nytt par, så må "push" komponentene i rekken som har dukket opp i en tom celle for å pakke en frisk posten.

best kjent implementering, basert på ulike søke trær.For eksempel, i en typisk lese rom STL av C ++ kart beholder er realisert på basis av sort og mahogny.I stil med Ruby, Tcl, brukte Python en type hash table.Det finnes også andre gjennomføring.

Generelt har hver gjennomføring sine fordeler og ulemper.Det er viktig at alle tre operasjoner ble oppfylt i gjennomsnitt, og i den verste perioden av nyanse om (log n), der n - gjeldende nummer for å redde par.For en felles søketrær (inkludert svarte og røde trær), er denne tilstanden fornøyd.

kjent at implementeringer basert på hash tabeller, definert som den gjennomsnittlige tid O (1), som er bedre enn de handlinger basert på søketreet.Naturligvis har dette ikke garantere en høyhastighets utførelse av visse operasjoner: varigheten av INSERT-setning blir omtalt som den verste fall O (n).INSERT prosessen utføres i lang tid da plikt forholdet når det høyeste punkt, og det er behov for å rekonstruere den hash indekstabellen.

måte, disse uttalelsene hasj ille at på bakgrunn av dette er det umulig å utføre raske ytterligere tiltak MAX, MIN og traversering algoritme for å redde alle parene etter synkende eller stigende nøkler.