JavaScript-array en de oprichting ervan.

In dit artikel zullen we kijken naar JavaScript-array, de onderdelen ervan.JavaScript is een perfect georiënteerde scripttaal, gemaakt voor de programmering.In feite, realiseert hij zich de taal ECMAScript (ECMA-262-standaard).

Waar JavaScript gebruiken?Het wordt gebruikt als een ingesloten taal om het pad naar het onderwerp softwaretoepassing bepalen.Het kan worden gevonden in de browser: het wordt daar gebruikt als een scripttaal die interactiviteit geeft aan webpagina's.

belangrijke architectonische kenmerken van dit product zijn dynamisch en zwak typen, avtoupravlenie geheugen, ideaal programmering functies, die het doel van de eerste categorie zijn.

Eigenlijk, in JavaScript getroffen verschillende redenen, omdat de ontwikkeling van een taal lijkt op Java, maar eenvoudig te gebruiken door programmeurs zou creëren.By the way, is de JavaScript-taal niet de eigenaar van een bedrijf of organisatie die het anders dan een aantal programma stijlen gebruikt door webontwikkelaars maakt.

Merk op dat JavaScript - een geregistreerd handelsmerk van zorg Oracle Corporation.

Wat is een matrix?

genaamd Array gegevens typt die winkels genummerde waarden.Elk van deze waarde wordt verwezen als een component van de matrix en het aantal waaraan een component is de index genoemd.JavaScript-ongetypeerde array.Dit betekent dat de details van de matrix kan hebben elk type, met diverse items van dezelfde matrix, hebben totaal verschillende stijlen.

Daarnaast JavaScript-array is dynamisch, en er wordt gezegd dat een vaste grootte is er geen behoefte te verklaren.Na het toevoegen van nieuwe onderdelen op elk moment.

Manufacturing scala

Met de taal JavaScript, om een ​​array heel moeilijk te maken.Er zijn twee methoden voor.De eerste betreft de productie van een array met een letterlijk - van vierkante haken, binnen die een lijst met items geplaatst, gedeeld door komma's.

  • var leeg = [];// Lege array;
  • Doorkiesnummers = var [4, 1, 2, 5];// Array met vijf digitale componenten;
  • var diff = [1.5, vals, «tekst"];// Array met drie elementen van verschillende types.

Meestal is er geen vereiste dat de waarden waren eenvoudig (en lijn nummer).Het kan ook andere uitdrukkingen, zoals onder letterlijke andere functies en arrays.

tweede manier om een ​​array van de ontwerper te maken is om te bellen Array ().Invite hem zijn drie methoden:

  • Calling ontwerper zonder argumenten: var b - new Array ().Het voorziet in de oprichting van een lege array gelijk letterlijk leeg [].
  • Designer heeft duidelijk de waarde van n componenten array: var b = new Array (1, 3, 5, 8, "een lijn", waar).In dit geval, de ontwerper presenteerde een lijst met argumenten, die worden omgezet in de componenten van de nieuwe matrix.Argumenten zijn geschreven aan de array is de locatie waar aangegeven.
  • Scoping voor later toekennen van waarden.Dit gebeurt door het specificeren van de detectie matrix van getallen tussen haakjes: var b = new Array (5).Deze methode van detectie omvat de toekenning van een array van het vereiste aantal componenten (die elk genoemd ongedefinieerd) met de mogelijkheid van toekennen van waarden in het overleg.Deze vorm wordt meestal gebruikt om pre-toe te wijzen aan de Javascript-array waarvan de lengte van tevoren bekend is.

schrijven, lezen en toevoegen van onderdelen scala

de onderdelen van de array te bereiken, kunt u de operator [] te gebruiken.Overigens alle componenten in JavaScript, beginnend met nul genummerd.Om de noodzakelijke elementen te verkrijgen, wordt het nummer tussen haakjes.Als regel, kunnen items worden veranderd.Een JavaScript toe te voegen aan de array, moet u een nieuwe waarde toe te wijzen.

moet worden opgemerkt dat in de JavaScript-serie een aantal elementen van welke aard dan kunt opslaan.

Lengte van

Dus we weten wat JavaScript.De lengte van de array in het algemeen is een interessant fenomeen.Laten we eens in meer detail.Alle reeksen zijn gemaakt door een ontwerper Array (), en geïdentificeerd dankzij een letterlijke array een specifieke eigenschap length, die herinnert aan het totale aantal elementen behouden hebben.Aangezien de reeks onzekere van de gegevens (aangeduid door undefined) kan zijn, klinkt een nauwkeuriger uitdrukking dus: Kwaliteit lengte is altijd groter één dan het hoogste nummer (index) component array.Kwaliteit lengte automatisch aangepast, blijven nauwkeurig op het optreden in een reeks van nieuwe onderdelen.

kwam tot de laatste onderdeel van de array, kunt u de functie lengte gebruiken.

laatste item heeft een index is één minder dan de grootte van de array.Na het tellen altijd beginnen vanaf nul.Oh, dit JavaScript!De lengte van de matrix is ​​afhankelijk van het exacte aantal items.Daarom, als je niet weet hoeveel ze zouden moeten zijn, maar je moet wenden tot het laatste element van de array, moet u het record van toepassing: v.length - 1.

Bust delen scala

Heel vaak wordt de eigenschap length gebruikt om itereren over de array van de onderdelen in de cyclus:

  • var fruit = [«aardbei", "perzik", "appel", "banaan"];
  • voor (var i = 0; i & lt; fruits.lenght; i ++);
  • document.write (fruit [i] + «...»).

In dit voorbeeld blijkt dat onderdelen continu geplaatst en beginnen met het eerste deel, waarbij de index nul bezit.Zo niet, roept elk element van de array moet worden gecontroleerd, of het is gedefinieerd.

cyclus wordt soms ook gebruikt om componenten te initialiseren.

Zoom en inkorting scala

afvragen hoe het gebruik van de JavaScript-taal in een string array toe te voegen?In het proces van het werken met arrays, de lengte van de lengte verbetert automatisch de kwaliteit, dat is waarom we zorgen te maken over het zelf.Het is noodzakelijk om over één detail herinneren - de eigenschap length is alleen-lezen niet beschikbaar is, maar voor de goede orde.Wanneer de lengte toe aan de kwaliteit van de waarde die de grootte van de stroom geeft, dan is de matrix is ​​gereduceerd tot een voorafbepaalde waarde.Alle onderdelen die niet zijn opgenomen in de nieuwe reeks van indices, leunen, en hun waarden verloren gaan, zelfs als later terugkeren lengte - niet worden hersteld.

zeer eenvoudig te reinigen, omdat de array: foo.length = 0.

Indien de kwaliteit van run lengte groter is dan de huidige waarde op het einde van de array zullen nieuwe, onbekende items zal verhogen tot de gewenste grootte.

verwijderen delen scala

verwijderen operator de component array undefined, maar het blijft bestaan ​​in dit geval.Als u een item van JavaScript-array moeten verwijderen, zodat de resterende onderdelen werden verplaatst voor een zetel, moet u een van de methoden te gebruiken om de array te voorspellen.Methode Array.shift () verwijdert de eerste component, pop () - de laatste ingrediënt, en de methode splice () - één of een reeks van componenten overal in de array.

Multidimensional Arrays

denk dat we een beetje te begrijpen over wat JavaScript.Tweedimensionale arrays - die verder moeten worden aangepakt.Herinnert u zich dat JavaScript arrays als componenten andere elementen kunnen bevatten?Deze eigenschap wordt gebruikt voor de productie van multi-dimensionale arrays.De ingrediënten bezoeken in een array van arrays is voldoende om de beugels tweemaal toepassen.

associatieve arrays

Nu, we leren hoe JavaScript handelsmerk associatieve arrays.Om dit moeten we kijken naar de theorie te doen: associatieve arrays worden soms een hash tabel.Dankzij hen, de indices gebruikte lijn.Het gebruik van dergelijke structuren doet denken aan het gebruik van de naam van de eigenschappen van een eenvoudig voorwerp, maar in deze uitvoeringsvorm, bij het werken in een array formaat.Zoals in JavaScript er geen manieren om associatieve arrays werken, worden ze gebruikt veel minder dan normaal.Opgemerkt moet worden dat ze kunnen nog steeds nuttig voor data-opslag en vereenvoudigen opslag van de onderdelen die u wilt openen.

uitgang scala

En nu zullen we bestuderen in het JavaScript?De uitgang van de array naar het dialoogvenster (op het scherm), en de uitgangswaarden van de componenten van de matrix.

Als het programma dat u wilt dat de waarden van alle componenten weer te geven, dan is het handig om de instructies zijn van toepassing voor.Interessant is dat de variabele teller gebruikt in de regels voor deze index component array.

Cleaning

Om scala van JavaScript filteren, moet u de lengte te resetten:

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

volgende toont de uitvoering van bestemming duidelijke (), in een JavaScript-raamwerk, Prototype:

  • duidelijk: function () {;
  • this.length = 0;
  • terug dit;
  • }.

toevoegen en verwijderen van componenten

Nou, blijven we deze interessante taal JavaScript verder te verkennen.Arrayelement en kan worden verwijderd en toegevoegd op dezelfde wijze als gebruikelijke eigenschappen van andere objecten.Maar er zijn enkele verschillen: terwijl de toevoeging van de numerieke eigenschappen van de kwaliteit van de lengte kan veranderen, en de wijziging van de eigenschap length kunnen worden afgevoerd van de numerieke kwaliteit.In principe is het algoritme instelling kwaliteiten dergelijke arrays is:

  • Bij toe onbekende eigenschappen van digitale i, indien de lengte gelijk is aan of kleiner dan i, lengte vastbesloten i + 1 zijn ,.
  • Wanneer u verandert de kwaliteit van lengte zijn als volgt samengesteld: als de toegekende waarde kleiner is dan nul, dan gooit RangeError.Geliquideerd alle numerieke kwaliteitsindexen die gelijk is aan de nieuwe lengte en groter dan zijn.

algemeen verwijdert het element van JavaScript-array is eenvoudig.Immers, zelfs instellen van de lengte, is het noodzakelijk om uit het "extra" componenten.Vandaar de reinigingsoptie in de array.Als de variabele krijgt een nieuwe lege array of andere reden, niet tevreden, en het is nodig dat de huidige resetten, de kwaliteit voldoende is om een ​​waarde van nul lengte toewijzen.

methoden unshift, shift, pop en duw

Ondanks het feit dat de componenten van de array handmatig worden veranderd, veel aanraden deze toe te passen ingebouwde methoden.Hierdoor nuance garandeert de correcte waarde van de kwaliteit en het gebrek aan lengte in de array passeert.Trouwens, de juiste lengte de kwaliteit zal het aantal componenten passen.

push-methode wordt verplaatst naar het einde van de array doorgegeven aan de details.Methode pop geeft terug aan het laatste onderdeel en verwijdert deze.

algemeen in Internet Explorer van het achtste uitvoering unshift kunnen ongedefinieerde terugkeren, in andere browsers - de nieuwe waarde van length.Dus op de return waarde van de unshift is beter niet te hopen.

toevoegen en de eliminatie van de onderdelen in het midden van de array

Wilt u een array van JavaScript te verwijderen, moet u nemen?Het is bekend dat de werkwijze een handtekening splice Array.prototype.splice.

Hij trekt zich terug uit de array deleteCount componenten, te beginnen met index start.Als u meer dan twee argumenten overgedragen, worden alle volgende argumenten in de array geplaatst in plaats van geliquideerd.Als start is verminderd, de index van waaruit weer de opname is gelijk aan de lengte + starten.Geeft een array van elementen afkomstig van de afstandsbediening.

In feite, volgens de methode splice, componenten worden verwijderd uit het midden van de array of toevoegen getal overal in de matrix.

In het eenvoudigste geval, als u een component met index te verwijderen i, moet de array splice methode met de parameters i en 1.

In principe, de tweede optie op de verbinding methode is niet verplicht, maar het gedrag van één argument in elke browser verschillend verzoek.

Bijvoorbeeld, in Firefox, in de laatste varianten van Opera, Safari en Chrome alle items zullen worden voor het einde van de array ingetrokken.

in IE zal geen onderdeel niet geliquideerd.De eerste variant is het onmogelijk om het gedrag van Opera te voorspellen - zal worden verwijderd uit één stuk met index start - 1. Daarom moet je altijd pas in de werkwijze ten minste twee componenten.

Keys

natuurlijk leren JavaScript, associatieve arrays, zoals eerder vermeld, moet je ook niet uit het oog verliezen.Dit is een abstracte vorm van informatie (de interface om de gegevens op te slaan), waarmee u paren van de vorm op te slaan "(key, value)" en voeg een paar operaties, alsmede verwijderen en te zoeken naar de belangrijkste paren:

- FIND (key).

- INSERT (waarde, sleutel).

- REMOVE (key).

wordt dat in de associatieve array staat om twee paren uit met dezelfde sleutel.In een paar k + vv opgeroepen waarde in verband met de belangrijkste k.Semantiek en namen bovenstaande bewerkingen in verschillende implementaties van dergelijke arrays kunnen verschillen.

dus het effect van FIND (key) geeft de waarde die aan een bepaalde sleutel, of een specifiek object UNDEF, waardoor ontbreekt de waarde die aan een bepaalde sleutel.Twee andere acties niets terug (met uitzondering van de gegevens die u met succes hebben uitgevoerd deze transactie).

algemeen, vanuit het oogpunt van de interface, die een associatieve array als een eenvoudige matrix, waarbij als indices kunnen niet alleen worden toegepast op gehele getallen en andere waarden - bijvoorbeeld lijnen.

manier steun voor dergelijke arrays heeft veel geïnterpreteerd high-level programmeertalen zoals PHP, Perl, Ruby, Python, Tcl, JavaScript, en anderen.Voor talen die geen ingebouwde gereedschappen om met associatieve arrays, creëerde een groot aantal implementaties in de vorm van bibliotheken.

voorbeeld van een associatieve array kan dienen als een telefoonboek.In deze uitvoeringsvorm is de waarde van een set van "F.IO + e ", en de sleutel - het telefoonnummer.Een telefoonnummer is een meester, maar een persoon kan bezitten meerdere kamers.

Associated verlenging

moet worden opgemerkt dat de meest bekende van de uitbreiding zijn de volgende:

  • ELK - «ga» om alle paren te slaan.
  • CLEAR - om alle inzendingen te verwijderen.
  • MIN - het vinden van een paar met de laagste toets.
  • MAX - vinden het paar met de meest cruciale.

In de laatste twee gevallen moet u op de toetsen aangegeven effecten van de vergelijking.

implementaties van associatieve arrays

Er zijn veel verschillende implementaties van de associatieve array.De meest voorkomende uitvoering kan gebaseerd zijn op een eenvoudige matrix waarvan de componenten zijn de dampen (waardesleutel).Om het tempo van de zoektocht acties kunnen worden besteld op de onderdelen van de array en implementeren van belangrijke bevinding met behulp van een binaire zoekopdracht.Maar het zal de hoeveelheid tijd die je nodig hebt om een ​​nieuw paar toe te voegen, zoals zal naar "push" de onderdelen van de array die is verschenen in een lege cel om een ​​nieuwe plaat te pakken moeten vergroten.

bekendste implementatie, gebaseerd op diverse zoekbomen.Bijvoorbeeld, in een typische leeszaal STL van C ++ kaart houder wordt gerealiseerd op basis van zwarte en mahonie.In de stijl van Ruby, Tcl, Python gebruikt een soort van hash tabel.Er zijn ook andere uitvoering.

In het algemeen, elke toepassing heeft zijn voor- en nadelen.Het is belangrijk dat alle drie operaties gemiddeld voldaan, en in het ergste periode van ongeveer nuance (log n), waarbij n - aanwezig te slaan par.Voor een gezamenlijke zoektocht bomen (met inbegrip van zwarte en rode bomen), aan deze voorwaarde is voldaan.

bekend dat implementaties op basis van hash tabellen, gedefinieerd als de gemiddelde tijd O (1), die beter is dan de acties op basis van de zoektocht boom.Uiteraard Dit garandeert geen uitvoering van bepaalde werkzaamheden high-speed: de duur van het INSERT wordt aangeduid als de worst case O (n).INSERT werkwijze wordt uitgevoerd gedurende een lange tijd dat de vermogensverhouding het hoogste punt bereikt, en er de behoefte om de hash indextabel reconstrueren.

manier deze verklaringen hash slecht dat het op deze basis onmogelijk is om uit te voeren snel aanvullende actie MAX, MIN en traversal algoritme om alle paren opslaan in volgorde van afnemende of toenemende toetsen.