Datamaskiner, Programmering
Javascript-matrise og dens skapelse. Alt om Javascript arrays
I denne artikkelen vil vi se på Javascript-array, dets komponenter. Javascript er et perfekt scenario orientert språk designet for programmering. Faktisk implementerer det ECMAScript språk (standard ECMA-262).
Av Javascript? Den brukes som en innebygd språk for å bestemme banen til programmet til foreliggende søknad. Det kan bli funnet i nettleseren: det brukes det som et skriptspråk som gir websider interaktiv.
De viktigste arkitektoniske trekk ved dette produkt er dynamiske og svak skrive, avtoupravlenie hukommelses ideelle programmeringsfunksjoner som er gjenstand for den første utladning.
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 den ikke eier et selskap eller en organisasjon som gjør den forskjellig fra en rekke programmerings stiler brukes av webutviklere.
Det bør bemerkes at Java - et registrert varemerke for Oracle Corporation Group.
Hva er en matrise?
Kalt matrise datatype, som lagrer nummererte verdier. Hver slik verdi er referert til som oppstillingen komponent og siffer som binder den komponent, som kalles en indeks. Javascript-rekke utypet. Dette betyr at de faste deler kan ha hvilken som helst type, med forskjellige deler som tilhører den samme gruppe, har helt forskjellige typer.
I tillegg er Javascript-matrise dynamisk, og det sies at en fast størrelse ikke behøver å bli erklært. Etter å legge nye deler til enhver tid.
fast produksjon
Ved hjelp av Javascript i å skape en rekke ganske vanskelig. Det finnes to metoder for dette. Den første innebærer fremstilling av en matrise ved hjelp av en bokstavelig - klammeparenteser, inne i hvilket er plassert en liste over elementer, dividert med komma.
- Var tomme = []; // tom matrise;
- Var numers = [4, 1, 2, 5]; // matrise med fem digitale komponenter;
- Var diff = [1,5, falsk «text"]; // matrise med tre elementer av forskjellige typer.
Som regel er det ikke nødvendig å være enkle verdier (rader og tall). Det kan også være noen andre uttrykk, for eksempel objekt litteraler, andre funksjoner og arrays.
Den andre måten å skape en matrise designer er å ringe Array (). Å invitere ham til en av tre måter:
- Ring en designer uten argumenter: var b - ny Array (). Det gir for opprettelse av en tom matrise tilsvarer et tomt bokstavelig [].
- Designeren har uttrykkelig angivelse av verdien n i matrisen komponenter: var b = new Array (1, 3, 5, 8, "linje», sann). I dette tilfellet, designeren presentert en liste over argumenter, som er forvandlet til en ny rekke komponenter. Argumenter er skrevet til matrisen er stedet der angitt.
- Definere omfanget for ytterligere tilordner verdier. Dette gjøres ved å spesifisere deteksjon matrisen et tall i parenteser: var b = new Array (5). Denne metoden for deteksjon omfatter tildeling matrisen nødvendige mengder av komponentene (hver av disse er oppført som udefinert) med en mulighet for å tilordne verdier i presentasjonen. Denne formen er vanligvis brukes til å forhånds fordele Javascript-matrise hvis lengde er kjent på forhånd.
Opptak, lese og legge detaljene for matrisen
Komme til komponentene i oppstillingen kan skje via operatør []. For øvrig er alle komponentene i Javascript, ved å starte fra null, er nummererte. For å oppnå de nødvendige elementene, tyder dets nummer i hakeparenteser. Som en generell regel kan elementer endres. En Javascript for å legge til matrisen, er det tilstrekkelig å tildele en ny verdi.
Det bør bemerkes at i Javascript matriser kan lagre en rekke elementer av noe slag.
Lengden av rekken
Så vet vi hva Javascript. lengden på array generelt er et interessant fenomen. La oss vurdere det nærmere. Alle områder er konstruert ved hjelp Array designer () og detekteres gjennom et bokstavelig matrise har en bestemt lengde egenskap, som trekker det totale antall elementer sparing. Siden matrisen kan være usikker på detaljene (udefinert Den utpekte), en mer nøyaktig uttrykk høres så: Kvalitet lengde er alltid større ved en enn det største nummeret (indeks) i matrisen komponent. Kvalitet lengde justeres automatisk, bor nøyaktig på utseendet av en rekke nye detaljer.
For å vise den siste komponenten i en tabell, kan du bruke lengden eiendom.
Den siste del er indeksen ett mindre enn størrelsen av rekken. Etter nedtellingen begynner alltid fra bunnen av. Oh, dette Javascript! Lengden av matrisen avhenger av den nøyaktige antall elementer. Derfor, hvis du ikke vet hvor mange det skal være, men du må slå til siste elementet i matrisen, er det nødvendig å bruke posten: v.length - 1.
Iterere rekken av deler
Svært ofte er lengden egenskapen brukes til å iterere over rekken av delene i syklus:
- Var frukt = [ «jordbær", "fersken", "eple", "banan"];
- for (var i = 0; i
- document.write (frukt [i] + «...»).
I dette eksempel fremgår det at komponentene er anordnet fortløpende og starte med den første del, som har indeksen null. Hvis dette ikke er tilfelle, før du ringer hvert element i matrisen bør sjekkes hvis det er definert.
Syklusen er også noen ganger brukt til å initial komponentene.
Økningen og avkortningen matrisen
Jeg lurer på hvordan du bruker språket Java streng i en matrise for å legge til? I prosessen med å jobbe med matriser, forbedrer lengde lengden automatisk kvaliteten, noe som er grunnen til at vi må ta vare på det selv. Det er nødvendig å huske en eneste detalj - lengde egenskapen er ikke tilgjengelig for skrivebeskyttet, men for posten. Hvis kvaliteten lengde attributtverdi som gir størrelsen av strømmen, blir rekken reduseres til en forutbestemt verdi. Noen komponenter som ikke er inkludert i den nye serien av indekser, hvile, og deres verdier er tapt, selv om du senere gå tilbake lengde - verdiene ikke gjenopprettes.
Ganske enkelt fjerne matrisen som: foo.length = 0.
Hvis kvaliteten på løpelengde som er større enn den strømverdi, ved utløpet av matrisen vil være nye, uidentifiserte komponenter, som vil øke det til den ønskede størrelse.
Slette en rekke detaljer
Slette operatøren indikerer komponenten i matrisen til udefinert, men det fortsetter å eksistere i dette tilfellet. Hvis du ønsker å fjerne Javascript element i matrisen slik at den resterende delen flyttet til den ledige plassen, må du bruke en av måtene å forutsi array. Metode Array.shift () fjerner en første komponent, pop () - terminerende komponent og en metode skjøten () - en komponent eller variere alt array.
flerdimensjonale arrays
Det virker som vi forstår litt, hva Javascript. Todimensjonale matriser - som må vurderes nærmere. Husker du at Javascript arrays kan inneholde som komponenter i andre elementer? Denne funksjonen blir brukt til produksjon av multidimensjonale matriser. For å besøke komponentene i en rekke matriser er tilstrekkelig å anvende de parentes to ganger.
assosiative matriser
Nå lærer vi hvordan varemerke bruker Javascript assosiative matriser. For å gjøre dette må vi se nærmere på teori: assosiative matriser kalles hash tabeller. Takket være dem, i stedet for indeks rader brukes. Bruken av slike strukturer som minner om bruken av navnet på egenskapene for et enkelt objekt, men i denne utførelsesform, utførelse av arbeid i et rekkeformat. Siden det er ingen Javascript arrays assosiative måter opererer, blir de brukt mye sjeldnere enn vanlig. Det bør bemerkes at de likevel kan være nyttig for lagring av data og forenkle lagring av deler, som vil bli aksessert.
utgang matrise
Og nå vil vi studere i Javascript-systemet? Utgang array til dialogboksen (på skjermen), såvel som utgangsverdiene til oppstillings komponentene.
Hvis programmet du vil vise verdiene av alle komponentene, så det er praktisk å bruke instruksjonene for. Interessant, variabel teller regler for bruk på samme tid som den komponent av matrisen indeksen.
rengjøring
For å filtrere en rekke Javascript, må du tilbakestille sin lengde:
- Var myArray = [1, 2, 5, 23];
- myArray.length = 0.
Det følgende viser gjennomføringen av bestemmelses klar (), i et rammeverk, Javascript-Prototype:
- klar: funksjon () {;
- this.length = 0;
- returnere dette;
- }.
Legge til og fjerne komponenter
Vel, vi fortsetter å utforske mer av dette spennende Javascript. gruppeelement som mulig og for å fjerne og legge den samme måte som konvensjonelle egenskapene til andre gjenstander. Men det er noen forskjeller: legge numerisk egenskaper kvalitet lengde kan variere, men i den modifikasjon av egenskapene lengde kan være eliminert numerisk kvalitet. I prinsippet som installerer algoritmen i matriser er som følger:
- Ved tilsetning av et digitalt ukjente egenskaper av I, hvis lengde er lik eller mindre enn i, er lengden bestemmes til å være i + 1.
- Når du endrer kvaliteten på lengde for å utføre følgende trinn: hvis den verdien som er mindre enn null, kaster deretter RangeError. Eliminerer alle numeriske kvalitetsindekser som er lik den nye lengde, og større enn.
Egentlig fjerne Javascript-matrise-elementet er enkel. Tross alt, selv sette lengden, må du fjerne "ekstra" komponenter fra den. Det følger av dette rengjøring alternativet array. Hvis variabelen er tildelt en ny tom array, uansett grunn, var ikke fornøyd, og det er nødvendig å tilbakestille gjeldende, er kvaliteten tilstrekkelig lengde for å tildele en verdi på null.
avskifte metoder, shift, pop og trykk
Til tross for at komponentene i matrisen blir endret manuelt, mange anbefaler å bruke denne innebygde metoder. Det er denne nyanse garanterer den riktige verdien av kvalitet og mangel på lengden i rekken passerer. For øvrig vil tilsvare kvaliteten på riktig lengde til antallet komponenter.
Prosessen beveger seg for å skyve enden av rekken overføres eks. Komme tilbake prosessen gir den siste komponenten og fjerner den.
Vanligvis i Internet Explorer under det åttende versjonen kan avskifte tilbake udefinert, i andre nettlesere - den nye verdien av lengde. Slik at returverdien fra avskifte bedre ikke å håpe.
Tilsetning og fjerning av delene i midten av rekken
Hvis du vil slette en rekke Javascript, må du ta? Det er kjent at metoden har en signatur spleise Array.prototype.splice.
Han trekker seg fra utvalg deleteCount komponenter, som begynner med indeks start. Hvis du passerer mer enn to argumenter, er alle etterfølgende argumenter i rekken arrangert i stedet for likvidert. Hvis start er minus, til indeksen der gjenoppta uttak vil være lik lengden + start. Retur til oppstillingen av eksterne elementer finner sted.
Faktisk, ved hjelp av spleisemetode, er det mulig å fjerne komponenter fra midten av en matrise eller legge til et hvilket som helst tall hvor som helst i gruppen.
I den enkleste utførelsesform, dersom det er nødvendig for å fjerne komponenten med indeks i, at matrisen må be spleisemetode med parametrene I og en.
I prinsippet er det andre alternativet på spleisemetode ikke obligatorisk, men virkemåten til funksjonen med et argument for hvert nettleseren er forskjellig.
For eksempel i Firefox, Opera i de siste varianter, alle detaljene før slutten av tabellen vil bli fjernet i Safari og Chrome.
ingen enkelt komponent elimineres i IE. Den første varianten er umulig å forutsi oppførselen til Opera - tatt ut ett element med indeks start - 1. Derfor er det alltid nødvendig i denne fremgangsmåte å overføre i det minste to komponenter.
nøklene
Selvfølgelig, læring Javascript, assosiative matriser, som nevnt tidligere, bør du heller ikke bli oversett. Dette er en abstrakt visning av informasjonen (grensesnittet til datalageret), som gjør det mulig å lagre et par av formen "(nøkkel, verdi)" og operasjonen av å tilføye et par støtte, samt delesjon og søk av nøkkelparet:
- FIND (key).
- SETT (verdi, key).
- FJERN (key).
Det antas at i en assosiativ array kan ikke redde de to parene med liknende nøkler. I et par k + v er den verdi som er knyttet sammen med nøkkelen fø. Semantikk og her med de ovennevnte operasjoner i forskjellige utførelser av slike oppstillinger kan være forskjellig.
Derfor finner drift (nøkkel) returnerer en verdi som er knyttet til en gitt nøkkel, eller et spesifikt objekt UNDEF, noe som betyr at den verdi som er knyttet til en gitt nøkkel, frakoblet. To andre handlinger ikke returnere (med unntak for data om operasjonen var vellykket).
Vanligvis, i form av grensesnittet, assosiative array som er ansett som en enkelt matrise, karakterisert ved at som indekser kan anvendes ikke bare heltall, men andre typer og verdier - for eksempel linjer.
Forresten, er støtte til slike arrays behandlet det er mange 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 enormt antall realisasjoner i form av bibliotekene.
Et eksempel på en assosiativ array kan tjene som en telefonkatalog. I denne utførelsesformen, blir verdien innstilt "F. IO + e", og nøkkelen - telefonnummeret. Ett telefonnummer er en mester, men en person kan eie flere numre.
tilknyttet forlengelse
Det bør bemerkes at de mest kjente utvidelser inkluderer følgende:
- HVER - «walk» på alle sparer parene.
- CLEAR - for å slette alle oppføringene.
- MIN - å finne et par med lavest nøkkelverdi.
- MAX - å finne et par med den største nøkkelverdi.
I de to siste tilfellene må du på tastene indikert sammenligning effekt.
Realisering av assosiative matriser
Det er mange forskjellige implementeringer av assosiativ array. Den vanligste implementering kan være basert på en enkel matrise hvis komponenter er de parene (verdi nøkkel). For å øke hastigheten på søkefunksjoner, kan du ordne komponenter i rekken av en hovedfunn og gjennomføre bruke et binært søk. Men det vil øke mengden av tiden det tar å legge til et nytt par, som må "push" tabellkomponenter som dukket opp i en tom celle for å pakke en frisk posten.
Den mest kjente implementering, basert på ulike søke trær. For eksempel, i en typisk lesesalen STL C ++ språk Tilhengere kartet er gjennomført på grunnlag av svart og mahogni. I Ruby stiler, Tcl, bruker Python en type hash tabeller. Det er andre gjennomføring.
Generelt har hver gjennomføring sine egne 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 - nåværende antall for å redde par. For felles søke trær (inkludert svarte og røde trær), er denne tilstanden oppfylt.
Det er kjent at i implementeringer basert på nøkkeltabeller, er den gjennomsnittlige tid som er definert som D (1), som er bedre enn i de handlinger basert på søke trærne. Selvfølgelig, er det ingen garanti en høyhastighetsytelse av separate operasjoner: INSERT innvirkningstid i verste fall, betegnet som O (n). SETT prosessen er utført i lang tid når det plikt forholdet når det høyeste punkt, og det er behov for å rekonstruere den nummertabellen indeksen.
Forresten, disse uttalelsene hasj ille at på dette grunnlaget er det umulig å utføre raske ytterligere tiltak MAX, MIN, og en algoritme for å søke i alle sparer parene i synkende rekkefølge eller stigende nøkler.
Similar articles
Trending Now