JavaScript-array og dets oprettelse.

I denne artikel vil vi se på JavaScript-array, dens komponenter.JavaScript er et perfekt orienteret scriptsprog, skabt til programmering.Faktisk han indser sproget ECMAScript (ECMA-262 standard).

Hvor at bruge JavaScript?Det anvendes som en indlejret sprog for at bestemme stien til emnet softwareprogrammet.Det kan findes i browseren: det bruges der som et scriptsprog, der giver interaktivitet til websider.

vigtige arkitektoniske træk ved dette produkt er dynamiske og svage maskinskrivning, avtoupravlenie hukommelse, ideel programmering funktioner, som er de objekter af den første kategori.

Faktisk, i JavaScript ramt forskellige årsager, fordi udviklingen ville skabe et sprog der ligner Java, men let at bruge af programmører.Af den måde, har JavaScript ikke ejer en virksomhed eller organisation, der gør det anderledes end en række program stilarter bruges af web-udviklere.

Bemærk at JavaScript - et registreret varemærke tilhørende bekymring Oracle Corporation.

Hvad er en matrix?

kaldet Array datatype, butikker nummererede værdier.Hver sådan værdi omtales som en komponent i matrixen, og det nummer, som en komponent kaldes indekset.JavaScript-typebestemt array.Det betyder, at detaljerne i arrayet kan have hvilken som helst type, med forskellige varer, der tilhører samme array, har helt forskellige stilarter.

Desuden JavaScript-array er dynamisk, og det siges, at en fast størrelse er der ingen grund til at erklære.Efter tilsætning af nye dele til enhver tid.

Manufacturing vifte

Brug sproget JavaScript, for at skabe en række ganske vanskeligt.Der er to metoder til dette.Den første omfatter produktion af en array ved hjælp af en bogstavelig - firkantede parenteser, inde som er placeret en liste over emner, divideret med kommaer.

  • var tom = [];// Tom matrix;
  • numers = Var [4, 1, 2, 5]// Array med fem digitale komponenter;
  • var diff = [1,5, falsk, «tekst"];// Array med tre elementer af forskellige typer.

Typisk er der ingen krav om, at værdierne var enkel (og linjenummer).Det kan også være nogen andre udtryk, for eksempel, forudsat litteraler andre funktioner og arrays.

anden måde at skabe en vifte af designeren er at kalde Array ().Invitere ham er tre metoder:

  • Opkald designer uden argumenter: Var b - ny Array ().Det forudser oprettelsen af ​​en tom række tilsvarende bogstavelig tom [].
  • Designer har klart angive værdien af ​​n komponenter vifte: var b = new Array (1, 3, 5, 8, "en linje», sandt).I dette tilfælde designeren præsenteret en liste med argumenter, der omdannes til komponenterne i den nye array.Argumenter er skrevet til array er det sted, hvor angivet.
  • Scoping til senere tildeling værdier.Dette gøres ved at angive afsløring vifte af tal i parentes: var b = new Array (5).Denne metode til påvisning involverer tildelingen af ​​et array af det krævede antal komponenter (der hver især er angivet som udefineret) med mulighed for at tildele værdier i processen med diskussion.Denne formular anvendes typisk til at pre-allokere Javascript array hvis længde er kendt på forhånd.

skrivning, læsning og tilføjer dele matrix

nå komponenterne i array, kan du bruge [] operatør.I øvrigt, alle komponenter i JavaScript, begyndende med nul, nummereret.For at opnå de nødvendige elementer, er dets nummer angivet i parentes.Som regel kan punkter ændres.En javascript for at tilføje til arrayet, skal du tildele en ny værdi.

skal bemærkes, at i JavaScript array kan gemme et vilkårligt antal elementer af nogen art.

længde

Så vi ved, hvad JavaScript.Længden af ​​array i almindelighed er et interessant fænomen.Lad os betragte det mere detaljeret.Alle serier er designet af en designer Array (), og identificeret takket være en bogstavelig matrix at have en specifik egenskab længde, hvilket minder det samlede antal elementer er bevaret.Da array kan være usikker detaljer (angivet ved udefineret), en mere præcis udtryk lyder så: Kvalitet længde er altid større med én end det største antal (indeks) komponent array.Kvalitet længde justeres automatisk, opholder sig præcis på forekomst i en vifte af nye dele.

kom til den sidste komponent af array, kan du bruge funktionen længde.

sidste element har et indeks er en mindre end størrelsen af ​​array.Efter optælling altid starte fra bunden.Åh, det JavaScript!Længden af ​​array'et det afhænger af det nøjagtige antal af elementer.Derfor, hvis du ikke ved, hvor meget de skal være, men du har brug for at henvende sig til den endelige element i array, skal du anvende posten: v.length - 1.

Bust dele vifte

Meget ofte er længden ejendom, der anvendes til at gentage over den vifte af dele i cyklen:

  • Var frugter = [«Jordbær", "fersken", "æble", "banan"];
  • for (var I = 0; i & lt; fruits.lenght; i ++);
  • document.write (frugter [I] + «...»).

I dette eksempel fremgår det, at komponenterne er placeret kontinuerligt og begynde med den første del, der ejer nul indekset.Hvis ikke, bør før du ringer hvert element i arrayet skal kontrolleres, om den er defineret.

cyklus er også undertiden bruges til at initialisere komponenter.

Zoom og trunkering vifte

spekulerer på, hvordan du bruger JavaScript i en streng array til tilføje?I processen med at arbejde med arrays, længden af ​​længden forbedrer automatisk kvaliteten, hvilket er hvorfor vi er nødt til at bekymre sig om det selv.Det er nødvendigt at huske om en detalje - længden ejendom er ikke skrivebeskyttet er tilgængelig, men for the record.Hvis længden attribut til kvaliteten af ​​den værdi, der giver størrelsen af ​​strøm, så arrayet er reduceret til en forudbestemt værdi.Eventuelle komponenter, der ikke indgår i den nye serie af indekser, læne sig tilbage, og deres værdier går tabt, selv om senere vende tilbage længde - ikke gendannes.

meget let at rengøre, fordi arrayet: foo.length = 0.

Hvis kvaliteten af ​​løbelængden større end dens aktuelle værdi ved slutningen af ​​array vil være nye, uidentificerede elementer, der vil øge det til den ønskede størrelse.

Fjernelse dele vifte

slette operatør angiver den komponent array til udefineret, men det fortsætter med at eksistere i dette tilfælde.Hvis du skal fjerne et element af JavaScript vifte, så de resterende dele blev fordrevet til en plads, skal du bruge en af ​​metoderne til at forudsige array.Metode Array.shift () fjerner den første komponent, pop () - den sidste ingrediens, og fremgangsmåden splejsning () - en eller en række komponenter overalt i array'et.

Multidimensional Arrays

tror, ​​vi forstår lidt om, hvad JavaScript.Todimensionale arrays - der skal behandles yderligere.Du husker, at JavaScript arrays som komponenter kan indeholde andre elementer?Denne funktion anvendes til produktion af flerdimensionale arrays.At besøge ingredienserne i en vifte af arrays er tilstrækkeligt til at anvende de beslag to gange.

Associative arrays

Nu lærer vi, hvordan JavaScript varemærke bruger associative arrays.For at gøre dette har vi brug for at se ind i teorien: associative arrays kaldes en hash tabel.Tak til dem, indeksene brugte linje.Anvendelsen af ​​sådanne strukturer minder om anvendelsen af ​​navnet på egenskaberne af et enkelt objekt, men i denne udførelsesform, når man arbejder i et array format.Som i JavaScript er der ingen måder at drive associative arrays, bliver de brugt langt mindre hyppigt end normalt.Det skal bemærkes, at de stadig kan være nyttige for datalagring og forenkle lagring af dele, som du vil have adgang til.

output vifte

Og nu vil vi studere i JavaScript?Udgangssignalet fra arrayet til dialogboksen (på skærmen), og output-værdier af komponenterne i arrayet.

Hvis det program, du ønsker at få vist værdierne for alle de komponenter, så er det praktisk at anvende de instruktioner til.Interessant, er den variable-counter anvendes i reglerne for dette indeks komponent array.

Rengøring

vil filtrere vifte af JavaScript, skal du nulstille længde:

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

følgende viser gennemførelsen af ​​destinationen klar (), i en JavaScript-ramme, Forbillede:

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

tilføje og fjerne komponenter

Nå, vi fortsætter med at udforske yderligere denne interessante sprog JavaScript.Arrayelement og kan fjernes og sættes på samme måde som traditionelle egenskaber af andre objekter.Men der er nogle forskelle: samtidig med at tilføje de numeriske egenskaber kan ændre kvaliteten af ​​længden, og kan bortskaffes numerisk kvalitet ændringen af ​​længden ejendom.I princippet sætte kvaliteter i sådanne arrays algoritmen er:

  • Når du tilføjer de ukendte egenskaber af digitale I, hvis længden er lig med eller mindre end jeg, længde er fast besluttet på at være i + 1 ,.
  • Når du ændrer kvaliteten af ​​længden er lavet på følgende måde: Hvis den tildelte værdi er mindre end nul, så kaster RangeError.Likviderede alle numeriske kvalitetsindekserne der er lig med den nye længde og større end.

Generelt fjerner det element af JavaScript array er nemt.Efter alt, selv indstille længden, er det nødvendigt at fjerne fra de "ekstra" komponenter.Derfor rengøring indstilling i arrayet.Hvis variablen er tildelt en ny tom array til en eller anden grund, ikke er opfyldt, og det er nødvendigt at nulstille strøm, dens kvalitet er tilstrækkelig til at tildele en værdi på nul længde.

metoder ophæve omskiftningen, skift, pop og skub

trods af at komponenterne i array ændres manuelt, mange anbefale dette for at anvende indbyggede metoder.Det er denne nuance garanterer den korrekte værdi kvaliteten og den manglende længde i array passerer.Af den måde, den korrekte længde kvaliteten vil svare til antallet af komponenter.

push-metoden flytter til slutningen af ​​array videre til detaljerne.Metode pop giver tilbage til den endelige komponent og fjerner det.

Generelt i Internet Explorer under den ottende udgave fjern skift kan vende tilbage udefineret, i andre browsere - den nye værdi af længden.Så på returværdien fra fjern skift er bedre ikke at håbe.

Tilføjelse og fjernelse af dele i midten af ​​array

Hvis du vil slette en række af JavaScript, skal du tage?Det er kendt, at fremgangsmåden har en signatur splejsning Array.prototype.splice.

Han trækker sig fra matrix deleteCount komponenter, der begynder med indeks start.Hvis du har overført mere end to argumenter, der alle efterfølgende argumenter placeret i array i stedet for likvideret.Hvis starten er minus, at indekset hvorfra genoptage tilbagetrækningen vil være lig med længden + starter.Returnerer et array af elementer kommer fra fjernbetjeningen.

Faktisk ved anvendelse af fremgangsmåden splidsning komponenter kan fjernes fra midten af ​​arrayet, eller tilføje et vilkårligt antal steder i array'et.

I det enkleste tilfælde, hvis du har brug for at fjerne en komponent med indeks i, nødt til at anmode array splejse metoden med de parametre i og 1.

I princippet den anden mulighed på splejse metode er ikke obligatorisk, men adfærd et argument i hver browser forskellig.

For eksempel i Firefox, i de seneste variationer af Opera, i Safari og i Chrome alle punkter vil blive trukket tilbage inden udgangen af ​​array.

i IE vil ikke likvideret nogen komponent.Den første variation er umuligt at forudsige adfærd Opera - vil blive fjernet et stykke med indeks starten - 1. Derfor bør du altid gå i metoden mindst to komponenter.

Nøgler

selvfølgelig, læring JavaScript, associative arrays, som tidligere nævnt, du må heller ikke glemme.Dette er en abstrakt form for oplysninger (grænsefladen til datalageret), som giver dig mulighed for at spare par af formen "(nøgle, værdi)", og tilføje et par af støtteforanstaltninger, samt slette og søge efter nøglepar:

- FIND (nøgle).

- INSERT (værdi, nøgle).

- fjern (nøgle).

Det menes, at i associative array ikke gemme to par med samme nøgle.I et par k + vv kaldet værdi forbundet med nøgle k.Semantik og navne ovennævnte operationer i forskellige implementeringer af disse arrays kan være anderledes.

Således er effekten af ​​finde (key) returnerer værdien forbundet med en given nøgle, eller et specifikt formål undef, hvilket betyder, at der mangler værdien er forbundet med en given nøgle.To andre tiltag ikke returnere noget (bortset fra de data, du med succes har gennemført denne transaktion).

Generelt fra synspunkt grænsefladen, som er et associativt array betragtes som en simpel matrix, hvor der som indeks kan anvendes ikke kun til heltal, og andre former for værdier - for eksempel linier.

måde, støtte til sådanne arrays har mange fortolket højt niveau programmeringssprog som PHP, Perl, Ruby, Python, Tcl, JavaScript, og andre.For sprog, der ikke har nogen indbyggede værktøjer til at arbejde med associative arrays, skabt et enormt antal implementeringer i form af biblioteker.

eksempel på et array kan tjene som en telefonbog.I denne udførelsesform er værdien af ​​et sæt "F.IO + e ", og nøglen - telefonnummeret.Et telefonnummer er en master, men én person kan eje flere værelser.

Associated forlængelse

skal bemærkes, at den mest berømte af ekspansion omfatter følgende:

  • HVER - «gå» for at gemme alle parrene.
  • CLEAR - for at slette alle poster.
  • MIN - finde et par med det laveste tasten.
  • MAX - find parret med den mest afgørende.

I de to sidste tilfælde skal du på tasterne angivne virkninger af sammenligning.

implementeringer af associativ arrays

Der er mange forskellige implementeringer af associative array.Den mest almindelige implementering kan være baseret på en simpel matrix, hvis komponenter er dampe (værdi nøgle).For at fremskynde kan bestilles søgningen handlinger på komponenterne i array og gennemføre centrale fund ved hjælp af en binær søgning.Men det vil øge mængden af ​​tid, du har brug for at tilføje et nyt par, som bliver nødt til at "skubbe" komponenterne i array, der har optrådt i en tom celle til at pakke en frisk rekord.

bedst kendt gennemførelse på grundlag af forskellige søgetræer.For eksempel er i en typisk læsesal STL af C ++ kort container realiseret på baggrund af sort og mahogni.I stil med Ruby, Tcl, Python brugte en form for hash tabellen.Der er også andre implementering.

Generelt hver implementering har sine fordele og ulemper.Det er vigtigt, at alle tre operationer blev opfyldt i gennemsnit, og i værste periode nuance om (log n), hvor n - det nuværende antal for at redde par.For et samordnede søgetræer (herunder sorte og røde træer), denne betingelse er opfyldt.

kendt, at implementeringer baseret på hash tabeller, defineret som den gennemsnitlige tid O (1), hvilket er bedre end de handlinger baseret på søgningen træet.Selvfølgelig betyder det ikke garantere en high-speed udførelse af visse operationer: varigheden af ​​INSERT sætning omtales som det værste tilfælde O (n).INSERT proces udføres for lang tid, når udnyttelsesgraden for når det højeste punkt, og der er behov for at rekonstruere hash indeks tabellen.

måde, disse udsagn hash dårlig, at på dette grundlag er det umuligt at udføre en hurtig supplerende indsats MAX, MIN og traversal algoritme til at gemme alle parrene i faldende eller stigende nøgler.