PočítačeProgramovanie

JavaScript-array a jeho tvorba. Všetko o pole JavaScripte

V tomto článku sa pozrieme na JavaScriptu-array, jej zložiek. JavaScript je ideálny scenár orientovaný jazyk určený pre programovanie. V skutočnosti implementuje jazyka ECMAScript (ECMA-262).

JavaScriptu? Používa sa ako vložený jazyk s cieľom určiť cestu k programu do predkladanej prihlášky. To môže byť nájdené v prehliadači: je tu použitý ako skriptovací jazyk, ktorý dáva webové stránky interaktívne.

Medzi hlavné architektonické prvky tohto produktu sú dynamické a slabé písanie, avtoupravlenie pamäťové ideálne programovacie funkcie, ktoré sú predmetom prvého výboja.

V skutočnosti, v JavaScripte ovplyvnil rôzne dôvody, pretože vývoj by vytvoril jazyk podobný Jave, ale ľahko použiteľný programátorov. Mimochodom, jazyk JavaScript nevlastní žiadnu firmu alebo organizáciu, ktorá ho odlišuje od mnohých programovacích štýlov používaných webových vývojárov.

Je potrebné poznamenať, že JavaScriptu - registrovaná ochranná známka spoločnosti Oracle Corporation Group.

Čo je to pole?

Nazýva pole typ údajov, ktorý ukladá číselné hodnoty. Každá táto hodnota sa označuje ako súčasť pole a číslice z, ktorý sa viaže na komponent nazýva index. JavaScript-array of typ. To znamená, že pevné častice môžu mať akýkoľvek typ, s rôznymi časťami, ktoré patria do rovnakej rady, majú úplne odlišné typy.

Okrem toho, JavaScript-array je dynamická, a hovorí sa, že pevné veľkosti nemusí byť deklarovaný. Po pridaní nových dielov kedykoľvek.

pevná látka výroba

Používanie jazyka JavaScript na vytvorenie poľa dosť ťažké. Existujú dve metódy pre toto. Prvá zahŕňa produkciu maticu pomocou doslovný - hranatých zátvoriek, vnútri ktorej je umiestnený zoznam položiek, oddelené čiarkou.

  • var prázdne = []; // prázdne polia;
  • var numers = [4, 1, 2, 5]; // pole s piatimi digitálnej komponentmi;
  • var diff = [1,5, falošný, «text"]; // pole s tromi prvkami rôznych typov.

Spravidla je to nemusí byť jednoduché hodnoty (riadky a čísla). To môže byť tiež akékoľvek iné výrazy, napríklad objektové literály, ďalšie funkcie a polia.

Druhý spôsob, ako vytvoriť návrhár poľa je volanie Array (). Pozvať ju do jednej z troch spôsobov:

  • Zavolať designer bez argumentov: var b - new Array (). Kladie si za cieľ vytvorenie prázdneho zodpovedajúce polia na prázdny doslovný [].
  • Projektant výslovne zadaním hodnoty n zložiek poľa: var b = new Array (1, 3, 5, 8, "riadok», true). V tomto prípade sa návrhár predstavil zoznam argumentov, ktoré sa premení na nové komponenty poľa. Argumenty sa zapisujú do matice, je miesto, kde je uvedené.
  • Vymedzenie priestor pre ďalšie priradenie hodnôt. To sa vykonáva uvedením do detekčného poľa číslo uzatvorené v zátvorkách: var b = new Array (5). Tento spôsob detekcie zahŕňa pridelenie Array požadované množstvo zložky (z ktorých každá je uvedená ako nedefinovaný) s možnosťou priradenia hodnôt v prezentácii. Táto forma sa zvyčajne používa na pre-prideliť JavaScriptu poli, ktorého dĺžka je vopred známy.

Záznam, čítanie a pridávanie detailov polia

Zoznámte sa s zložiek polia môžu byť prostredníctvom operátora []. Mimochodom, všetky komponenty v JavaScripte, počnúc od nuly, sú spočítané. Pre získanie potrebné prvky, označenie jeho číslo v hranatých zátvorkách. Ako všeobecné pravidlo, položky môžu byť zmenené. JavaScriptu pridať do poľa, postačí priradiť novú hodnotu.

Je potrebné poznamenať, že v JavaScripte možno poľa uložiť ľubovoľný počet prvkov akéhokoľvek druhu.

Dĺžka poľa

Takže vieme, čo JavaScript. Dĺžka poľa všeobecne je zaujímavý jav. Uvažujme ho podrobnejšie. Všetky rozsahy sú konštruované za použitia Array Designer () a detegovaných pomocou doslovného polia majú zvláštnu vlastnosť length, ktorá odníma celkový počet prvkov šetriacimi. Vzhľadom k tomu, pole môže byť neistý detailov (nedefinované Určený), presnejšie výraz znie tak: dĺžka kvality je vždy väčšia ako jedným najväčším počtom (index) súčasti poľa. Dĺžka kvalita sa nastavuje automaticky, pobyt presné na vzhľade rad nových detailov.

Ak chcete zobraziť konečné súčasť poľa, môžete použiť vlastnosť length.

Posledná časť je index o jednu menšiu než veľkosť poľa. Po odpočítavanie začína vždy od nuly. Ach, to JavaScript! Dĺžka poľa závisí na jeho presnom počte prvkov. Preto, ak neviete, koľko by malo byť, ale je potrebné sa obrátiť na finálny prvok poľa, je nutné použiť záznam: v.length - 1.

Iterovat rad dielov

Veľmi často je k dispozícii dĺžka sa používa pre iteráciu cez rad dielov v cykle:

  • var ovocie = [ «jahody", "broskyňa", "jablko", "banán"];
  • pre (var i = 0; i
  • document.write (ovocie [i] + «...»).

V tomto prípade sa zdá, že tieto súčasti sú usporiadané kontinuálne a začať s prvou časťou, ktorá je držiteľom nulový index. Ak je tomu tak nie je, pred volaním každý prvok poľa, ak je definovaná by mali byť skontrolované.

Cyklus je tiež niekedy používa pre inicializáciu komponenty.

Zvýšenie a skrátenie polia

Zaujímalo by ma, ako pomocou jazyka JavaScript reťazec do poľa sa pridať? V procese práce s poliami, dĺžka dĺžka automaticky zlepšuje kvalitu, čo je dôvod, prečo sa musíme postarať sa o to sami. Treba pripomenúť jeden detail - dĺžka vlastnosť nie je k dispozícii len pre čítanie, ale pre poriadok. Ak atribút hodnoty dĺžky kvality, ktorý udáva veľkosť prúdu, je pole zníži na vopred stanovenú hodnotu. Všetky komponenty, ktoré nie sú zahrnuté do novej rady indexov, naklonenie, a ich hodnoty sú stratené, a to aj keď sa neskôr vrátiť dĺžka - hodnoty nebudú môcť byť obnovené.

Docela jednoducho vymazať poľa ako: foo.length = 0.

Ak je kvalita dĺžka behu väčší ako jeho aktuálnej hodnoty, na konci poľa budú nové, neidentifikované zložky, ktoré zvýšia ju na požadovanú veľkosť.

Vymazanie rad podrobností

Operátor delete označuje zložku pole nedefinované, ale stále existuje v tomto prípade. Ak chcete odstrániť JavaScript prvok poľa, takže zostávajúca časť presunula do prázdneho miesta, budete musieť použiť jeden zo spôsobov, ako predpovedať poľa. Spôsob Array.shift () odstráni prvý zložku, pop () - zakončovací zložku a metóda splice () - jednu zložku alebo pohybovať kdekoľvek poľa.

viacrozmerné pole

Zdá sa, že sme pochopili, trochu, čo JavaScript. Dvojrozmerné pole - ktoré je potrebné sa ďalej zaoberať. Spomínate si, že pole JavaScriptu môže obsahovať ako zložky iných predmetov? Táto funkcia sa používa na výrobu viacrozmerných polí. Ak chcete navštíviť komponenty v rade polí stačí dvakrát žiadať držiaky.

asociatívne pole

Teraz sa dozvedáme, ako ochranná známka využíva JavaScript asociatívnych polí. K tomu je potrebné sa pozrieť do teórie: asociatívne polia sú niekedy označované ako hash tabuľky. Vďaka nim namiesto riadky indexu sa aplikujú. Použitie týchto štruktúr pripomínajúce použitie názvu vlastností jednoduchého objektu, ale v tomto prevedení je výkon práce vo formáte poľa. Pretože nie sú tam žiadne spôsoby manipulácie JavaScript pole asociatívne sa používajú oveľa menej často, ako je obvyklé. Je potrebné poznamenať, že stále môžu byť užitočné pre ukladanie dát a zjednodušujú skladovanie dielov, ktoré budú prístupné.

výstupné pole

A teraz budeme študovať v systéme JavaScriptu? Výstupné pole dialógové okno (na obrazovke), rovnako ako výstupné hodnoty zložiek poľa.

Ak program, ktorý chcete zobraziť hodnoty všetkých zložiek, potom je vhodné použiť pokyny pre. Zaujímavé je, že variabilný-counter pravidlá pre použitie v rovnakom čase, ako zložky indexu poľa.

čistenie

Aby bolo možné filtrovať rad JavaScriptu, je potreba obnoviť jeho dĺžka:

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

Nasledujúce ukazuje realizácii cieľa jasné () v rámci, JavaScript-Prototype:

  • jasné: funkcia () {;
  • this.length = 0;
  • vrátiť tento;
  • }.

Pridanie a odstránenie komponenty

No, budeme pokračovať ďalej preskúmať túto vzrušujúcu JavaScript jazyk. prvok poľa, ako je to možné, a odstrániť a pridať rovnakým spôsobom ako konvenčné vlastnosti iných objektov. Ale existujú niektoré rozdiely: pridanie číselnú reality dĺžku kvality sa môže líšiť, ale v modifikácii dĺžky vlastností môžu byť eliminované číselnú kvalitu. V zásade je napríklad algoritmus nainštalovať do polí je nasledujúci:

  • Pri pridávaní digitálne neznáme vlastnosti aj v prípade, že dĺžka je rovná alebo menšia ako I, dĺžka sa určí i + 1.
  • Ak zmeníte kvalitu dĺžky vykonať nasledujúce kroky: Ak je priradená hodnota je nižšia ako nula, potom sa hodí RangeError. Eliminuje všetky číselné kvalitné indexy, ktoré sa rovnajú novej dĺžky a vyšší než.

V skutočnosti odstrániť pole JavaScript element je jednoduchý. Konieckoncov, aj nastavenie dĺžky, je potrebné odstrániť "extra" komponenty od neho. Z tejto doplnkovej čistiace poľa. Ak je premenná pridelené nové prázdne pole z akéhokoľvek dôvodu neboli splnené, a že je potrebné vykonať reset prúdu, jeho kvalita je dostatočná dĺžka priradiť hodnotu nula.

unshift metódy, posun, pop a tlačiť

Napriek tomu, že jednotlivé zložky polia sú zmenené ručne, mnohí odporúčame použiť túto vstavaných metód. Je to práve táto nuansy zaručuje správnu hodnotu kvality a nedostatok dĺžky v priechodoch poľa. Mimochodom, bude kvalita správnu dĺžku zodpovedajú počtu komponentov.

Tento proces sa pohybuje tlačiť koniec poľa prenáša položky. Pop späť proces vytvára čistý komponenty a odstráni ju.

Všeobecne možno v programe Internet Explorer v rámci ôsmej verzii unshift môže vrátiť nedefinované, v iných prehliadačoch - novú hodnotu dĺžky. Tak, že návratová hodnota od unshift lepší dúfať.

Pridanie a odstránenie častí v strede poľa

Ak chcete vymazať pole JavaScriptu, budete musieť vziať? Je známe, že táto metóda má podpis spojovacie Array.prototype.splice.

Odstúpi od zložiek poľa deleteCount, počnúc začiatkom indexu. Ak odovzdať viac ako dva argumenty, všetky nasledujúce argumenty v poli sú usporiadané v mieste zlikvidované. Ak je štart mínus, index u ktorého obnoviť odstúpenia bude rovná dĺžke + štart. Ak sa vrátime pole vzdialených prvkov prebieha.

V skutočnosti, s použitím metódy spoja, je možné odstrániť súčasti zo stredu poľa, alebo ľubovoľný počet kdekoľvek v poli.

V najjednoduchšom prevedení je odstrániť komponentu s indexom i, pole je potrebné požadovať spôsob spoja s parametrami i a 1.

V zásade platí, že druhá možnosť na spôsobe zostrihu nie je povinné, ale správanie funkcií s jedným argumentom pre každý prehliadač je iný.

Napríklad v prehliadači Firefox, Opera v posledných variantov, všetky údaje pred koncom poľa budú odstránené v Safari a Chrome.

žiadna zložka je eliminovaný v IE. Prvý variant je nemožné predvídať správanie Opera - bude odstránená jedna položka sa štartom index - 1. Preto je vždy nutné tento spôsob pre prenos aspoň dve zložky.

kľúče

Samozrejme, učenie JavaScript, asociatívne polia, ako bolo spomenuté predtým, mali by ste tiež nemali byť prehliadaná. Je to abstraktné pohľad na informácie (rozhranie pre dátové úložisko), čo umožňuje ušetriť pár v tvare "(kľúč, hodnota)" a prevádzka pridanie dvojice podporu, rovnako ako delécie a pátranie po dvojici kľúčov:

- FIND (key).

- INSERT (value, key).

- REMOVE (key).

Predpokladá sa, že v spoločenskom poli nemožno uložiť dva páry s podobnými kľúčmi. Za pár K + VV je hodnota spojená s kľúčom k. Sémantika a tu uvedených operácií v rôznych implementáciách týchto polí môžu byť rôzne.

Preto operácie hľadania (kľúč) vráti hodnotu spojenú s daným kľúčom, alebo konkrétny objekt undef, čo znamená, že hodnota spojená s daný kľúč, v režime offline. Dve ďalšie akcie nevracia (s výnimkou údajov o tom, či bola operácia úspešná).

Všeobecne platí, že pokiaľ ide o rozhrania, asociatívne pole, ktorý je považovaný ako jednoduchý pole, pričom sa ako indexy možno použiť nielen celé čísla, ale ďalšie typy a hodnoty - napríklad linky.

Mimochodom, podpora pre takéto pole sa zaobchádza existuje mnoho programovacích jazykov na vysokej úrovni, ako je PHP, Perl, Ruby, Python, Tcl, JavaScript a ďalšie. U jazykov, ktoré nemajú vstavané nástroje pre prácu s asociatívnych polí vytvorila obrovské množstvo realizácií vo forme knižníc.

Príkladom asociatívnym poli môže slúžiť ako telefónny zoznam. V tomto prevedení sa hodnota je nastavená "F. IO + e "a kľúč - telefónne číslo. Jedno telefónne číslo je jeden pán, ale jedna osoba môže vlastniť viac čísel.

spojené predĺženie

Je potrebné poznamenať, že najznámejší rozšírenie patria nasledujúce:

  • KAŽDÝ - «prechádzka» na všetkých šetrí párov.
  • Jasný - vymazať všetky položky.
  • MIN - nájsť pár s najnižším hodnoty kľúča.
  • MAX - nájsť pár s najväčšou hodnotou kľúča.

V posledných dvoch prípadoch je potrebné, aby na tlačidlách je uvedené porovnanie efekt.

Realizácia asociatívnych polí

Existuje mnoho rôznych implementácií v asociatívnom poli. Najbežnejšie prevedenie môže byť na základe jednoduchého pole, ktorého komponenty sú páry (hodnota kľúča). Ak chcete urýchliť vyhľadávacie funkcie, môžete si dojednať komponenty pole pomocou kľúčového nálezu a realizovať pomocou binárneho vyhľadávania. Ale zvýši množstvo času potrebného k pridať nový pár, pretože bude musieť "push" maticové súčasti, ktoré sa objavili v prázdnej bunke 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 ++ jazyk Prívesy mape je realizovaný na základe čiernej a mahagón. Ruby, štýly, Tcl, Python používa jeden typ hash tabuliek. Existujú aj ďalšie implementácie.

Všeobecne platí, že každá implementácia má svoje výhody aj nevýhody. Je dôležité, aby všetky tri operácie boli splnené v priemere, a v najhoršom období nuansy okolo (log n), pričom n - aktuálny počet zachrániť pár. Pre vzájomné vyhľadávacie stromy (vrátane čiernej a červenej stromy), je táto podmienka splnená.

Je známe, že v implementáciách založených na stoly mriežky, priemerná doba je definovaná ako D (1), čo je lepšie ako v akciách založených na vyhľadávacích stromov. Samozrejme, že to nezaručuje výkonnosť vysokorýchlostného samostatných operácií: Vložte akčné čas v najhoršom prípade, označovaný ako O (N). INSERT proces prebieha po dlhú dobu, keď pomer daň dosahuje najvyšší bod, a tam je potreba rekonštruovať index hash tabuľky.

Mimochodom, tieto výroky hash zlé, že na tomto základe je možné vykonať rýchly ďalšie akcie Max, Min, a algoritmus hľadať všetky ukladá dvojice zostupne alebo vzostupne kľúča.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sk.atomiyme.com. Theme powered by WordPress.