JavaScript-array och dess tillkomst.

click fraud protection

I denna artikel kommer vi att titta på JavaScript-array, dess komponenter.JavaScript är ett perfekt orienterat skriptspråk, som skapats för programmering.I själva verket, inser han språk ECMAScript (ECMA-262 standarden).

Var kan man använda JavaScript?Det används som en inbäddad språk för att fastställa vägen till ämnet programmet.Det kan hittas i webbläsaren: det används där som ett skriptspråk som ger interaktivitet på webbsidor.

viktiga arkitektoniska inslagen i denna produkt är dynamiska och svaga maskinskrivning, avtoupravlenie minne, perfekt programmeringsfunktioner, som är föremål för den första kategorin.

Faktiskt, i JavaScript påverkade olika skäl, eftersom utvecklingen skulle skapa ett språk som liknar Java, men lätt att använda av programmerare.Förresten, inte JavaScript inte äger något företag eller organisation som gör det skiljer sig från ett antal program stilar som används av webbutvecklare.

Observera att JavaScript - ett registrerat varumärke som tillhör oro Oracle Corporation.

Vad är en matris?

kallas Array datatyp som lagrar numrerade värden.Varje sådant värde betecknas som en komponent i arrayen, och det nummer till vilket en komponent kallas index.JavaScript-otypad matris.Detta innebär att uppgifterna i gruppen kan ha vilken typ, med olika artiklar som hör till samma array, har helt olika stilar.

Dessutom är JavaScript-array dynamisk, och det sägs att en fast storlek finns det ingen anledning att förklara.Efter att lägga till nya delar som helst.

Tillverknings array

Användning av språket JavaScript för att skapa en array ganska svårt.Det finns två metoder för detta.Den första innebär produktion av en array med en bokstavlig - hakparenteser, inuti vilken är placerad en lista med objekt, dividerat med kommatecken.

  • var tom = [];// Tom array;
  • numers = var [4, 1, 2, 5];// Array med fem digitala komponenter;
  • var diff = [1,5, falskt, «text"];// Array med tre element av olika typer.

Typiskt finns det inget krav att värdena var enkla (och radnummer).Det kan även finnas några andra uttryck, till exempel, med förbehåll literals andra funktioner och arrayer.

andra sättet att skapa en array av formgivare är att kalla Array ().Bjud honom finns tre metoder:

  • Calling designer utan argument: var b - new Array ().Man planerar att inrätta en tom array motsvarande bokstav tomt [].
  • Designer har tydligt ange värdet på n komponenter arrayen: var b = new Array (1, 3, 5, 8, "en linje", true).I detta fall, designern presenterades en lista med argument, som omvandlas till komponenterna i den nya matrisen.Argument skrivs till arrayen är platsen där så anges.
  • Avgränsning för senare tilldelning av värden.Detta görs genom att ange detektions rad siffror inom parentes: var b = new Array (5).Denna metod för detektion innebär fördelning av en rad erforderligt antal komponenter (som var och en är listad som odefinierad) med möjlighet att tilldela värden i den pågående diskussionen.Denna form används vanligtvis för att förallokera Javascript-array vars längd är känd på förhand.

skrivning, läsning och lägga delar array

når komponenterna i matrisen, kan du använda [] operatören.Förresten, alla komponenter i JavaScript, som börjar med noll, numrerade.För att få de nödvändiga elementen, dess nummer som anges inom parentes.Som regel kan objekt ändras.En JavaScript för att lägga till gruppen, måste du ange ett nytt värde.

bör noteras att i JavaScript array kan lagra valfritt antal element av något slag.

längd

Så vet vi vad JavaScript.Längden av uppsättningen i allmänhet är ett intressant fenomen.Låt oss betrakta det mer i detalj.Alla intervallen är utformade av en designer Array (), och beräknas med hjälp av bokstav array för att ha en specifik egenskap längd, vilket påminner om det totala antalet element bevaras.Eftersom gruppen kan vara osäkra på detaljerna (betecknade med odefinierad), låter en mer exakt uttryck så: Kvalitet längd är alltid större med ett än det största antalet (index) komponent array.Kvalitets längd justeras automatiskt, bor korrekt vid förekomst i en rad nya delar.

kom till den sista komponenten i arrayen, kan du använda funktionen längd.

sista objektet har ett index är ett mindre än storleken på matrisen.Efter att ha räknat alltid börja om från början.Åh, denna JavaScript!Längden av uppsättningen det beror på det exakta antalet poster.Därför, om du inte vet hur mycket de borde vara, men du måste vända sig till den sista delen av arrayen, måste du tillämpa Resultat: v.length - 1.

Bust delar array

Mycket ofta är fastigheten längden som används för att iterera över arrangemanget av delar i cykeln:

  • Var frukter = [«Strawberry", "persika", "apple", "banana"];
  • for (var i = 0; i & lt; fruits.lenght; i ++);
  • document.write (frukter [i] + «...»).

I det här exemplet, verkar det som om komponenter är placerade kontinuerligt och börja med den första delen, som äger noll index.Om inte, innan du ringer varje element i matrisen bör kontrolleras, oavsett om det är definierat.

cykel även ibland för att initiera komponenter.

Zoom och trunke array

undrar hur du använder JavaScript i en sträng array att tillägga?I processen med att arbeta med arrayer, längd av längden förbättrar automatiskt kvaliteten, vilket är anledningen till att vi behöver oroa sig för det själv.Det är nödvändigt att komma ihåg om en detalj - egenskapen längd inte skrivskyddad finns, men för att undvika missförstånd.Om längden attributet till kvaliteten på det värde som ger storleken på strömmen, sedan matrisen reduceras till ett förutbestämt värde.Alla komponenter som inte ingår i det nya utbudet av index, luta, och deras värden går förlorade, även om senare återgå längd - inte återställas.

mycket lätt att rengöra eftersom matrisen: foo.length = 0.

Om kvaliteten på körningen längd större än dess nuvarande värde i slutet av uppsättningen kommer att vara nya, oidentifierade objekt som kommer att öka den till önskad storlek.

Ta bort delar array

bort operatören specificerar komponent array odefinierad, men det fortsätter att existera i detta fall.Om du måste ta bort ett objekt JavaScript array så att de återstående delarna förskjuts för en plats, måste du använda en av de metoder för att förutsäga arrayen.Metod Array.shift () tar bort den första komponenten, pop () - den sista ingrediensen, och metoden splice () - en eller ett antal komponenter som helst i gruppen.

Multidimensional Arrays

tror att vi förstår lite om vad JavaScript.Tvådimensionella arrayer - som måste åtgärdas ytterligare.Du minns att JavaScript matriser som komponenter kan innehålla andra element?Den här funktionen används för framställning av flerdimensionella arrayer.Att besöka ingredienserna i en rad uppsättningar är tillräcklig för att tillämpa konsolerna två gånger.

associativa arrayer

Nu lär vi oss hur JavaScript varumärke använder associativa arrayer.För att göra detta måste vi undersöka teorin: associativa arrayer kallas ibland en hashtabell.Tack vare dem, indexen används linje.Användningen av sådana strukturer som påminner om användningen av namnet av egenskaperna hos ett enkelt objekt, men i detta utförande, när du arbetar i en rad format.Såsom i JavaScript finns det inga sätt att använda associativa arrayer, används de mycket mindre ofta än vanligt.Det bör noteras att de fortfarande kan vara användbara för datalagring och förenkla lagring av delar som du vill komma åt.

utgång array

Och nu kommer vi att studera i JavaScript?Utsignalen från uppsättningen för att dialogrutan (på skärmen), och de utgående värdena hos komponenterna i uppsättningen.

Om det program som du vill visa värdena för alla komponenter, då är det lämpligt att tillämpa instruktioner.Intressant nog är den rörliga disk som används i reglerna för detta index komponent array.

Rengöring

att filtrera utbud av JavaScript, måste du återställa längd:

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

följer visar genomförandet av tydliga mål (), i en JavaScript-ramverk, Förebild:

  • klar: function () {;
  • this.length = 0;
  • tillbaka detta;
  • }.

Lägga till och ta bort komponenter

Tja, fortsätter vi att ytterligare utforska denna intressanta språk JavaScript.Arrayelement och kan tas bort och läggas på samma sätt som konventionella egenskaper för andra objekt.Men det finns vissa skillnader: när du lägger till de numeriska egenskaperna kan ändra kvaliteten på längd och modifiering av fastigheten längden kan tas om hand numerisk kvalitet.I princip är algoritmen inställningen kvaliteter i sådana uppsättningar:

  • När du lägger det okända egenskaper digital i, om längden är lika med eller mindre än jag, är längd bestäms vara i + 1 ,.
  • När du ändrar kvaliteten på längden framställdes enligt följande: Om det tilldelade värdet är mindre än noll, kastar sedan Rangeerror.Likvide alla numeriska kvalitetsindex som är lika med den nya längd och större än.

Generellt bort elementet JavaScript array är lätt.När allt, även inställning av längden, är det nödvändigt att ta bort från "extra" komponenter.Därför alternativet städning i uppsättningen.Om variabeln är tilldelad en ny tom array av någon anledning, inte är uppfyllt, och det är nödvändigt att återställa den nuvarande, är dess kvalitet är tillräcklig för att tilldela ett värde av noll längd.

metoder UnShift, förskjutning, pop och tryck

Trots att komponenterna i uppsättningen ändras manuellt, många rekommenderar detta att tillämpa inbyggda metoder.Det är denna nyans garanterar rätt värde kvalitet och bristen på längden i uppsättningen passerar.Förresten, rätt längd kvaliteten kommer att matcha antalet komponenter.

sändmetoden flyttas till slutet av arrayen skickas till detaljerna.Metod pop ger tillbaka till den sista komponenten och tar bort det.

Generellt i Internet Explorer under åttonde versionen unshift kan återvända odefinierad, i andra webbläsare - det nya värdet för längd.Så på returvärdet från unshift är bättre att inte hoppas.

Lägga till och eliminering av delar i mitten av arrayen

Om du vill ta bort en rad JavaScript, måste du ta?Det är känt att metoden har en signatur splits Array.prototype.splice.

Han drar sig tillbaka från de array delete komponenter, som börjar med index start.Om du överförde mer än två argument, är alla efterföljande argument placeras i gruppen istället för likviderats.Om start är minus, till index som återuppta uttag kommer att vara lika med längden + starta.Returnerar en matris med element kommer från fjärrkontrollen.

Faktum användning av metoden skarven, komponenter kan tas bort från mitten av matrisen, eller lägga till valfritt antal som helst i gruppen.

I det enklaste fallet, om du behöver ta bort en komponent med index i, måste begära arrayen skarvmetoden med parametrarna i och 1.

I princip är inte obligatoriskt att andra alternativ på skarvmetoden, men beteendet hos ett argument i varje webbläsare olika.

Till exempel i Firefox, under de senaste varianter av Opera i Safari och Chrome alla objekt kommer att dras tillbaka före slutet av arrayen.

i IE kommer inte avvecklas någon komponent.Den första varianten är omöjligt att förutsäga beteendet hos Opera - kommer att tas bort ett stycke med index start - 1. Därför bör du alltid gå i metoden åtminstone två komponenter.

Keys

naturligtvis lära JavaScript, associativa arrayer, som tidigare nämnts, du får inte heller glömma bort.Detta är en abstrakt typ av information (gränssnittet till datalagret), vilket gör att du kan spara par av formen "(nyckel, värde)" och lägg till ett par stödverksamhet, samt radera och söka efter nyckelpar:

- FIND (nyckel).

- INSERT (värde, nyckel).

- Ta bort (knapp).

Man tror att i den associativa arrayen inte att spara två par med samma nyckel.I ett par k + v kallas värde i samband med nyckel k.Semantik och namnen ovanför verksamhet i olika implementeringar av sådana uppsättningar kan vara annorlunda.

sålunda effekten av FIND (nyckel) returnerar värdet associerat med en given nyckel, eller ett specifikt objekt undef, vilket innebär att värdet är associerad med en given nyckel saknas.Två andra åtgärder inte tillbaka något (med undantag för de data som du har lyckats avrättades denna transaktion).

allmänhet ur synvinkel av gränssnittet, vilket är en associativ array betraktas som en enkel matris, varvid som index kan tillämpas inte bara till heltal, och andra typer av värden - till exempel linjer.

sätt, stöd till sådana matriser har många tolkade hög nivå programmeringsspråk såsom PHP, Perl, Ruby, Python, Tcl, JavaScript och andra.För språk som inte har några inbyggda verktyg att arbeta med associativa arrayer, skapade ett stort antal implementeringar i form av bibliotek.

exempel på en associativ matris kan fungera som en telefonkatalog.I denna utföringsform, värdet av en uppsättning av "F.IO + e ", och nyckeln - telefonnumret.Ett telefonnummer är en mästare, men en person kan äga flera rum.

Associated förlängning

bör noteras att den mest kända expansions innehålla följande:

  • VARJE - «gå» att spara alla paren.
  • CLEAR - för att radera alla poster.
  • MIN - hitta ett par som har lägst nyckeln.
  • MAX - hitta paret med den mest avgörande.

I de två sistnämnda fallen behöver du på tangenterna indikerade effekterna av jämförelse.

implementeringar av associativa arrayer

Det finns många olika implementeringar av associativ array.Den vanligaste genomförande kan grundas på en enkel array vars komponenter är rök (värde nyckel).För att påskynda sökandet åtgärder kan beställas på komponenterna i gruppen och genomföra viktig slutsats genom att använda en binär sökning.Men det kommer att öka den tid du behöver lägga till ett nytt par, som kommer att behöva "push" komponenterna i uppsättningen som har dykt upp i en tom cell för att packa en ny skiva.

mest känd implementering, baserad på olika sökträd.Till exempel, i en typisk läsesal STL av C ++ karta behållare realiseras på grundval av svart och mahogny.I stil med Ruby, Tcl använde Python en typ av hash-tabell.Det finns också andra genomförande.

I allmänhet har varje genomförande sina fördelar och nackdelar.Det är viktigt att alla tre operationer uppfylldes i genomsnitt, och i värsta perioden nyans om (log n), där n - det nuvarande antalet att rädda par.För en samordnade sökträd (inklusive svarta och röda träd), är detta villkor uppfylls.

känt att implementationer baserade på hashtabeller, definieras som den genomsnittliga tiden O (1), vilket är bättre än de åtgärder som grundar sig på sökträdet.Naturligtvis är detta inte garanterar en snabb avrättning av viss verksamhet: varaktighet INSERT kallas värsta fall O (n).INSERT process utförs under en lång tid när driftfaktorn når den högsta punkten, och det finns behov av att rekonstruera söknyckelindex tabellen.

sätt, dessa uttalanden hash dålig att på grundval av detta är det omöjligt att utföra en snabb ytterligare åtgärder MAX, MIN och traversal algoritm för att spara alla paren i fallande eller ökande nycklar.