JavaScript-array a jeho tvorba.

V tomto článku sa pozrieme na JavaScripte-pole, jeho súčasťou.JavaScript je dokonale orientovaný skriptovací jazyk, vytvorený pre programovanie.V skutočnosti, on si uvedomí, jazyka ECMAScript (ECMA-262 štandard).

Kde použiť JavaScript?Používa sa ako vložený jazyk s cieľom určiť cestu k predmetom softvérové ​​aplikácie.To možno nájsť v prehliadači: sa používa tu ako skriptovací jazyk, ktorý dáva interaktivitu na webové stránky.

významné architektonické prvky tohto produktu sú dynamické a slabé písanie, avtoupravlenie pamäť, ideálne programovacie funkcie, ktoré sú objekty prvej kategórie.

V skutočnosti, v jazyku JavaScript postihnuté z rôznych dôvodov, pretože vývoj by vytvoril jazyk podobný Jave, ale ľahko použiteľné pre programátorov.Mimochodom, jazyk JavaScript nevlastní žiadnu spoločnosť, alebo organizácie, ktorá ho odlišuje od množstva štýlov programových používaných webových vývojárov.

Všimnite si, že JavaScript - registrovaná ochranná známka spoločnosti Oracle Corporation koncernu.

Čo je to pole?

volal Array dátový typ, ktorý ukladá zrátané hodnoty.Každá takáto hodnota je označovaná ako súčasť poľa, a číslo, ktoré je súčasť sa nazýva index.JavaScript-bez typu pole.To znamená, že údaje o polia môžu mať bez ohľadu na typ, s rôznymi položiek, ktoré patria do rovnakého poľa, majú úplne odlišné štýly.

sčítanie, JavaScript-array je dynamický, a hovorí sa, že pevná veľkosť nie je potrebné deklarovať.Po pridaní nových dielov kedykoľvek.

Výroba pole

pomocou jazyka JavaScript, aby ste mohli vytvoriť pole dosť ťažké.K dispozícii sú dve metódy pre toto.Prvá zahŕňa produkciu poľa pomocou doslovný - hranatých zátvoriek, vnútri ktorej je umiestnený zoznam položiek, od seba oddelené čiarkou.

  • var empty = [];// Prázdne pole;
  • numers = var [4, 1, 2, 5];// Pole s piatimi digitálne komponenty;
  • var diff = [1.5, false, "text"];// Pole s tromi prvkami rôznych typov.

Obvykle neexistuje žiadna požiadavka, že hodnoty boli jednoduché (a číslo riadku).Môže byť tiež všetky ďalšie výrazy, napríklad, ktoré sú predmetom Literály ďalšie funkcie a polia.

Druhý spôsob vytvorenia pole dizajnéra je zavolať Array ().Invite ním sú tri metódy:

  • Volanie značkové bez argumentov: var B - new Array ().To predpokladá vytvorenie prázdneho poľa ekvivalent doslovný prázdny [].
  • Designer jasne ukazujú hodnotu n zložiek pole: var b = new Array (1, 3, 5, 8, "čiaru", true).V tomto prípade, projektant predstavovali zoznam argumentov, ktoré sú prevedené do priečinkov nového poľa.Argumenty sú zapísané do poľa je miesto, kde je uvedené.
  • Stanovenie rozsahu pre neskoršie priradenie hodnôt.To sa vykonáva určením detekčné pole čísel uzavreté v zátvorkách: var b = nové pole (5).Tento spôsob detekcie zahŕňa pridelenie pole požadovaného počtu zložiek (z ktorých každá je uvedená ako nedefinovaná) s možnosťou priradenia hodnôt v procese rokovaní.Táto forma sa zvyčajne používa na pre-prideliť Javascript poli, ktorého dĺžka je vopred známy.

písanie, čítanie a pridávanie časti poľa

dosahujú súčasti poľa, môžete použiť operátor [].Mimochodom, všetky súčasti v JavaScripte, počínajúc nulou, očíslované.Ak chcete získať potrebné prvky, je jeho číslo uvedené v zátvorke.Je pravidlom, že predmety môžu byť zmenené.Javascript pridať do poľa, je potrebné priradiť novú hodnotu.

potrebné poznamenať, že v poli JavaScript môže uložiť ľubovoľný počet prvkov akéhokoľvek druhu.

Dĺžka

Takže vieme, čo JavaScript.Dĺžka poľa v všeobecne je zaujímavý fenomén.Vezmime to podrobnejšie.Všetky rozsahy sú navrhnuté dizajnovú Array (), a identifikovať vďaka doslovným pole mať zvláštnu vlastnosť length, ktorá pripomína, že je celkový počet prvkov sú zachované.Vzhľadom k tomu, pole, môže byť neisté detailov (označený nedefinované), presnejšie výraz znie takto: dĺžka kvality je vždy väčší ako o jednu z najväčších číslo (index) zložky poľa.Dĺžka Kvalita sa nastaví automaticky, pobyt presné v výskytu v poli nových dielov.

prišiel ku konečnému zložky poľa, môžete použiť celovečerný.

posledná položka má index je o jednu menšiu, než je veľkosť poľa.Po sčítaní vždy začať od nuly.Ach, to JavaScript!Dĺžka poľa závisí na presnom počte položiek.Preto, ak neviete, ako moc by mali byť, ale musíte sa obrátiť na záverečnú prvku matice, musíte použiť záznamu: v.length - 1.

Bust diely pole

Veľmi často sa stáva, dĺžka vlastnosť sa používa na iterácii cez pole dielov v cykle:

  • var ovocie = [«Strawberry", "broskyňa", "jablko", "banán"];
  • for (var i = 0; i & lt; fruits.lenght, i ++);
  • document.write (ovocie [i] + «...»).

V tomto prípade sa zdá, že komponenty sú umiestnené priebežne a začať s prvou časti, ktorá vlastní nulový index.Ak tomu tak nie je, pred volaním každý prvok matice je potrebné skontrolovať, či je definovaný.

cyklus sa tiež niekedy používa k inicializácii komponenty.

zoom a skrátenie pole

zaujímalo, ako pomocou jazyka JavaScript do poľa reťazcov sa pridať?V procese práce s poli, dĺžka dĺžky automaticky zvyšuje kvalitu, čo je dôvod, prečo sa musíme starať o to sami.Je potrebné mať na pamäti, o jednom detail - dĺžka vlastnosť nie je len pre čítanie k dispozícii, ale pre úplnosť.Ak atribút dĺžky na kvalitu hodnoty, ktorá udáva veľkosť prúdu, potom je pole zníži na vopred stanovenú hodnotu.Akékoľvek zložky, ktoré nie sú zahrnuté do novej rady indexov, naklonenie, a ich hodnoty sú stratené, aj keď neskôr sa vrátil späť dĺžku - nie je možné obnoviť.

dá ľahko čistiť, pretože pole: foo.length = 0.

Ak je kvalita dĺžka behu väčší, než jeho aktuálna hodnota na konci poľa bude nové, neidentifikované predmety, ktoré zvýšia na požadovanú veľkosť.

Odstránenie časti poľa

odstrániť operátor určuje pole komponent do nedefinovanej, ale bude naďalej existovať v tomto prípade.Ak musíte odstrániť položku JavaScriptu poľa, takže zvyšné časti bolo premiestnené na miesto, musíte použiť jednu z metód predvídať poľa.Metóda Array.shift () odstráni prvý zložku, pop () - konečné zložku, a metóda splice () - jeden alebo rozsah komponentov kdekoľvek v poli.

Mnohodimenzionálny pole

, že sme trochu porozumieť o tom, čo JavaScript.Dvojrozmerné pole -, ktoré je potrebné riešiť ďalšie.Pamätáš si, že JavaScript poľa ako súčasti môžu obsahovať ďalšie prvky?Táto funkcia sa používa pre výrobu viacrozmerné pole.Ak chcete navštíviť ingrediencie v rade polí stačí dvakrát použiť zátvorky.

asociatívnych polí

Teraz sa dozvedáme, ako JavaScript ochranná známka používať asociatívne pole.K tomu musíme sa pozrieť do teórie robiť: asociatívne pole sa niekedy nazývajú hash tabuľky.Vďaka nim, indexy používa linku.Použitie týchto štruktúr pripomínajúce použitie názvu vlastností jednoduchého objektu, ale v tomto prevedení, pri práci vo formáte poľa.Ako je v JavaScripte neexistujú žiadne spôsoby, ako prevádzkovať asociatívnych polí, sa používajú oveľa menej často, ako je obvyklé.Je potrebné poznamenať, že sa stále môže byť užitočná pre ukladanie dát a zjednodušenie ukladanie častí, ku ktorému sa chcieť pristupovať.

výstupné array

A teraz sa budeme študovať v JavaScripte?Výstup z poľa do dialógového okna (na obrazovke), a výstupné hodnoty zložiek poľa.

Ak program, ktorý chcete zobraziť hodnoty všetkých komponentov, potom je vhodné použiť inštrukcie pre.Zaujímavé je, že premenná, čítač je použitý v pravidlách pre tento index komponentov poľa.

Čistenie

Ak chcete filtrovať rad JavaScript, budete musieť resetovať dĺžka:

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

Nasledujúci ukazuje implementáciu určenia clear (), v JavaScript-rámca, Prototype:

  • jasný: function () {;
  • this.length = 0;
  • vrátite;
  • }.

Pridanie a odobratie komponenty

No, budeme aj naďalej ďalej skúmať tento zaujímavý jazyk JavaScript.Array element a môžu byť odstránené a pridané rovnakým spôsobom ako konvenčné vlastnosti iných objektov.Ale existujú určité rozdiely: kým pridávanie numerické vlastnosti môže zmeniť kvalitu dĺžky a zmena dĺžky majetku možno zlikvidovať numerickej kvality.V zásade platí, že algoritmus nastavenie kvality v týchto polí je:

  • Pri pridanie neznámych vlastností digitálnej Aj, v prípade, že dĺžka je rovná alebo menšia ako aj, dĺžka je určená ako aj + 1,.
  • Pri zmene kvality dĺžky, sa pripraví takto: ak priradená hodnota je nižšia ako nula, potom sa hodí RangeError.Likvidoval všetky číselné indexy kvality, ktoré sú rovnaké nové dĺžky, a väčšie, než.

Všeobecne odstrániť prvok poľa JavaScriptu je jednoduché.Koniec koncov, aj nastavenie dĺžky, je potrebné odstrániť z "extra" komponentov.Preto je možnosť čistenia v matici.Ak je premenná priradený nový prázdny pole z nejakého dôvodu, nie je splnená, a že je nutné vykonať reset prúdu, jeho kvalita je dostatočná pre priradiť hodnotu nulovú dĺžku.

metódy unshift, posun, pop a push

Napriek tomu, že zložky polia sú ručne meniť, mnohí odporúčame toto aplikovať vstavané metódy.Je to práve táto nuansy garantuje správnu hodnotu, kvalita a nedostatok dĺžky v poli priechodov.Mimochodom, správna dĺžka kvalita bude zodpovedať počtu komponentov.

metóda tlak presunie na koniec poľa prešiel na detaily.Metóda pop dáva späť do finálneho výrobku a odstráni ho.

Všeobecne v programe Internet Explorer v rámci ôsmeho verzii unshift môže vrátiť nedefinované, v iných prehliadačoch - nová hodnota dĺžky.Takže na spiatočnej hodnote od unshift je lepšie, aby dúfať.

Pridávanie a odstraňovanie častí v strede poľa

Ak chcete vymazať pole JavaScriptu, musíte vziať?Je známe, že spôsob má podpis pre zostrih Array.prototype.splice.

On odstúpi od zložiek pole deleteCount počnúc indexom štartom.Ak sa prenesie viac ako dva argumenty, všetky nasledujúce argumenty sú umiestnené v poli namiesto zlikvidované.Ak je štart mínus, index z ktorého sa znovu stiahnutie bude rovná dĺžke + spustiť.Vracia pole prvkov pochádza z diaľkového ovládania.

V skutočnosti, podľa metódy spoj, zložky môžu byť odstránené zo stredu poľa, alebo pridať ľubovoľný počet kdekoľvek v matici.

V najjednoduchšom prípade, ak potrebujete odstrániť priečinok s indexom i, musí požiadať o metódu pole sváru s parametrami i a 1.

V zásade platí, že druhá možnosť v metóde spoja nie je povinné, ale správanie jedného argumentu v každom prehliadači inom,

Napríklad vo Firefoxe, v posledných variácií Opera, Safari a Chrome všetky položky budú stiahnuté do konca poľa.

v IE nebude zlikvidovaná akúkoľvek zložku.Prvý variant je nemožné predvídať správanie Opery - bude odstránený jeden kus s indexom START - 1. Preto by ste mali vždy odovzdať metóde aspoň dve zložky.

Keys

Samozrejme, učenie JavaScript, asociatívne polia, ako už bolo spomenuté, musíte tiež nesmie stratiť zo zreteľa.Je to abstraktné druh informácií (rozhranie k úložisku dát), ktorý umožňuje uložiť párov formulára "(kľúč, hodnota)" a pridať pár podporných operácií, ako aj mazať a hľadať kľúčové páry:

- FIND (kľúč).

- INSERT (hodnota, kľúč).

- REMOVE (kľúč).

Predpokladá sa, že v asociatívnom poli nemožno uložiť dva páry s rovnakým kľúčom.Za pár K + vv nazýva hodnota spojená s kľúčom k.Sémantika a názvy nad operáciou v rôznych implementáciách týchto polí môžu byť odlišné.

To znamená, že účinok find (kľúče) vráti hodnotu spojenú s daným kľúčom, na určitý objekt undef, čo znamená, že hodnota spojená s daným kľúčom chýba.Dva ďalšie akcie nevracia nič (s výnimkou údajov, ktoré ste úspešne vykonaný túto transakciu).

Všeobecne platí, že z hľadiska používateľského rozhrania, ktorý je asociatívne pole považovať za jednoduchú poľa, vyznačujúci sa tým, ako indexy možno aplikovať nielen na celé čísla, a ďalšie typy hodnôt - napríklad linky.

cesta, podpora na tieto polia má mnoho interpretovať programovacích jazykov na vysokej úrovni, ako je PHP, Perl, Python, Ruby, Tcl, JavaScript a ďalšie.Pre jazyky, ktoré nemajú vstavané nástroje pre prácu s asociatívnych poliach, vytvoril obrovské množstvo implementácií vo forme knižníc.

príklad asociatívne pole môže slúžiť ako telefónny zoznam.V tomto prevedení sa hodnota sady "F.IO + e ", a kľúč - telefónne číslo.Telefónne číslo je jeden pán, ale jedna osoba môže vlastniť niekoľko miestností.

Associated predĺženie

potrebné poznamenať, že najslávnejší expanzia patria nasledujúce:

  • KAŽDÝ - «prejsť» uložiť všetky dvojice.
  • jasný - odstránite všetky položky.
  • MIN - nájsť pár s najnižším kľúčom.
  • MAX - nájsť pár s najviac rozhodujúce.

V posledných dvoch prípadoch, ktoré potrebujete, aby na klávesy uvedené účinky porovnanie.

implementácia asociatívneho poľa

Existuje mnoho rôznych implementácií asociatívneho poľa.Najbežnejšie prevedenie môže byť založené na jednoduchom pole, ktorého komponenty sú výpary (hodnota kľúča).Ak chcete urýchliť vyhľadávacie akcie možno objednať na zložiek poľa a implementovať kľúčové zistenia pomocou binárneho vyhľadávania.Ale to bude zvýšiť množstvo času, ktoré potrebujete pridať nový pár, pretože budú musieť "tlak" zložiek poľa, ktorá sa objavila v prázdnej bunky zabaliť nový rekord.

najznámejšie realizácie, na základe rôznych vyhľadávacích stromov.Napríklad v typickej čitárne STL C ++ mape kontajnera je realizovaná na základe čiernej a mahagón.V štýle Ruby, Tcl, Python používa typ tabuľky hash.K dispozícii sú aj ďalšie implementácie.

Všeobecne platí, že každá implementácia má svoje výhody a nevýhody.Je dôležité, aby všetky tri operácie boli splnené v priemere, a v najhoršom období nuansy o (log n), kde n - aktuálne počet pre uloženie pár.Pre rokovania vo vyhľadávacej stromy (vrátane čiernej a červenej stromy), je táto podmienka splnená.

známe, že implementácia založené na stoly mriežky definovanej priemernú dobu O (1), ktorý je lepší, ako aktivity založené na vyhľadávací strom.Samozrejme, že to nezaručuje spustenie vysokorýchlostné určitých operácií: trvanie INSERT sa označuje ako najhorší prípad O (n).INSERT proces sa vykonáva po dlhú dobu, pokiaľ je pomer clo dosiahne najvyšší bod, a je potrebné rekonštruovať index tabuľky hash.

spôsobom, tieto výroky hash zlé, že na tomto základe je možné vykonávať rýchle ďalšie akcie MAX, MIN a priechod algoritmus uložiť všetky dvojice v poradí zníženie alebo zvýšenie kľúča.