PočítačeProgramování

JavaScript-array a jeho tvorba. Vše o pole JavaScriptu

V tomto článku budeme zvažovat pole JavaScript, jeho komponenty. JavaScript je ideálně orientovaný skriptovací jazyk určený pro programování. Ve skutečnosti implementuje jazyk ECMAScript (standard ECMA-262).

Kde je JavaScript používán? Používá se jako vložený jazyk pro určení cesty softwaru k objektu aplikace. Může se nalézt v prohlížečích: používá se zde jako skriptovací jazyk, který poskytuje interaktivitu webových stránek.

Nejdůležitější architektonické prvky tohoto produktu jsou dynamické a slabé písmo, automatické řízení paměti, ideální programování, funkce, které jsou objekty první kategorie.

Obecně platí, že JavaScript byl ovlivněn různými důvody, protože ve vývoji chtěli vytvořit jazyk podobný Java, ale snadno použitelný programátory. Mimochodem, jazyk jazyka JavaScript není vlastněn žádným podnikem nebo organizací, což je odlišné od množství softwarových stylů používaných vývojáři webu.

Je třeba poznamenat, že JavaScript je registrovaná ochranná známka společnosti Oracle Corporation.

Co je to pole?

Pole je datový typ, který ukládá číslované hodnoty. Každá taková hodnota se nazývá složka pole a číslo, ke kterému je součást přiřazena, se nazývá index. JavaScriptové pole je neopracované. To znamená, že podrobnosti pole mohou mít libovolný typ a různé části patřící do stejného pole mají zcela odlišné typy.

Kromě toho je pole JavaScript dynamické, což znamená, že není třeba deklarovat pevnou velikost. Koneckonců můžete kdykoli přidat nové součásti.

Produkce pole

Pomocí jazyka JavaScriptu není vytváření pole vůbec těžké. Existují dvě metody. První zahrnuje vytvoření pole s doslovnými hranatými závorkami, uvnitř kterých je seznam částí oddělených čárkami.

  • Var prázdný = []; // empty array;
  • Varové čísla = [4, 1, 2, 5]; // pole s pěti digitálními součástmi;
  • Var diff = [1,5, falešný, "text"]; // pole se třemi prvky různých druhů.

Typicky to nevyžaduje, aby byly hodnoty jednoduché (řetězce a čísla). Mohou to být i jiné výrazy, například literály předmětu, další funkce a pole.

Druhým způsobem, jak vytvořit pole, je zavolat návrháře Array (). Můžete jej pozvat třemi způsoby:

  • Volání návrháře bez argumentů: var b - nový Array (). Zde je vytvořeno prázdné pole, které je ekvivalentem prázdného literálu [].
  • Konstruktor explicitně má hodnoty n prvků pole: var b = nový Array (1, 3, 5, 8, "string", true). V tomto případě je návrhářovi předložen seznam argumentů, které se změní na součásti nového pole. Argumenty jsou zapsány do pole v místě, ve kterém jsou zadány.
  • Definice oblasti pro následné přidělování hodnot. To se provádí zadáním pole jednoho čísla uzavřeného v závorkách: var b = new Array (5). Tato metoda detekce zahrnuje přidělování do pole požadovaného počtu složek (z nichž každá je uvedena jako nedefinovaná) s možností následného přiřazení hodnot v procesu prezentace. Taková forma se obvykle používá k předběžnému umístění javiskového pole, jehož délka je předem známá.

Napište, přečtěte si a přidejte detaily pole

Součásti pole můžete získat pomocí operátoru []. Mimochodem, všechny prvky v jazyce JavaScript, začínající od nuly, jsou očíslovány. Pro získání požadovaného prvku je jeho číslo uvedeno v hranatých závorkách. Pravidla mohou být zpravidla změněna. A do pole přidat JavaScript, stačí přiřadit novou hodnotu.

Je třeba poznamenat, že v polích JavaScript můžete ukládat libovolný počet prvků libovolného druhu.

Délka pole

Takže víme, co je JavaScript. Délka pole je obecně zajímavý jev. Zvažme to podrobněji. Všechny matice, které jsou navrženy pomocí designéru Array () a identifikovány pomocí pole literal, mají vlastnost specifické délky, která připomíná celkový počet uložených prvků. Vzhledem k tomu, že v poli jsou nedefinované podrobnosti (označené jako nedefinované), přesnější výraz zní takto: kvalita délky je vždy větší než jedna než největší číslo (index) komponenty pole. Délka kvality je automaticky nastavena a zůstává přesná, když se v poli objeví nové části.

Chcete-li zobrazit poslední komponentu pole, můžete použít vlastnost délky.

Poslední detail má index menší než velikost pole. Koneckonců, počítání začíná vždy od začátku. Oh, tento JavaScript! Délka pole závisí na přesném počtu prvků. Takže pokud nevíte, kolik z nich by mělo být, ale musíte se obrátit na konečný prvek pole, musíte použít záznam: v.length - 1.

Pole podrobností pole

Velmi často se vlastnost délky používá k výčtu detailů pole v smyčce:

  • Varové plody = ["jahoda", "broskev", "jablko", "banán");
  • Pro (var I = 0; i
  • Document.write (ovoce [i] + "...").

V tomto příkladu se zdá, že komponenty jsou umístěny nepřetržitě a začínají první částí, která vlastní nulový index. Pokud tomu tak není, před voláním každého prvku pole je nutné zkontrolovat, zda je definován.

Smyčka se někdy používá k inicializaci komponent.

Zvýšení a zkrácení pole

Zajímalo by mě, jak používat řetězec jazyka JavaScript v poli, který chcete přidat? Při práci s poli se délka délky automaticky zlepšuje, a proto se o to musíme postarat samy. Je třeba si vzpomenout na jeden detail: vlastnost délky je nejen čitelná, ale i pro psaní. Pokud je délce kvality přiřazena hodnota, která je nižší než aktuální velikost, pak pole se zmenší na zadanou hodnotu. Všechny součásti, které se nenacházejí v novém rozsahu indexů, jsou skloněny a jejich hodnoty jsou ztraceny, a to i v případě, že později vrátíme zpětnou délku - hodnoty nejsou obnoveny.

Je snadné vymazat pole takto: foo.length = 0.

Je-li kvalita délky větší než její aktuální hodnota, na konci pole se objeví nové odinstalované součásti, které ji zvýší na požadovanou velikost.

Smazání podrobností pole

Operátor odstranění určuje nedefinovanou hodnotu v komponentě pole a nadále existuje. Chcete-li odstranit prvek pole JavaScript tak, aby zbývající detaily byly přesunuty do volného prostoru, musíte použít některý z předvídatelných metod pole. Metoda Array.shift () vylučuje první komponentu, pop () je ukončující složkou a metoda splice () je jedna nebo řada komponent kdekoliv v poli.

Polomery vícerozměrné

Zdá se, že jsme vyřešili něco o tom, co je JavaScript. Dvojrozměrná pole - to je to, co je třeba dále zvážit. Vzpomínáte si, že pole JavaScript mohou obsahovat další prvky jako součásti? Tato funkce se používá k výrobě vícerozměrných polí. Chcete-li navštívit komponenty v sadě polí, postačí dvakrát použít hranaté závorky.

Asociativní pole

A teď se dozvíme, jak používají asociativní pole ochranné známky JavaScript. K tomu je třeba se podívat na teorii: asociativní matice jsou někdy nazývány hash tabulkami. Používají řetězce namísto indexů. Použití takových struktur se podobá použití jména vlastnosti jednoduchého objektu, ale v této verzi při provádění práce ve formátu pole. Vzhledem k tomu, že JavaScript nemá žádný způsob manipulace s asociativními poli, jsou používány mnohem méně často než tradiční. Je třeba poznamenat, že mohou být stále užitečné pro ukládání dat a snadné zapamatování si detailů, které potřebujete k přístupu.

Výstup pole

A teď, co se dozvíme v systému JavaScript? Výstup pole v dialogovém okně (na obrazovce monitoru), stejně jako zobrazování hodnot prvků pole.

Pokud program potřebuje zobrazit hodnoty všech komponent, je vhodné použít pro příkaz. Je zajímavé, že proměnná počítadla pro pravidla se používá jako index komponenty pole.

Čištění

Chcete-li filtrovat pole JavaScript, musíte vymazat jeho délku:

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

Následující tabulka ukazuje implementaci funkce clear () v dobře známém rámci Prototype JavaScript:

  • Vymazat: funkce () {;
  • Tato délka = 0;
  • Vraťte to;
  • }.

Přidávání a odebírání komponent

No, pokračujeme v studiu tohoto zajímavého jazyka JavaScriptu. Element pole může být odstraněn a přidán stejným způsobem jako obvyklé vlastnosti jiných objektů. Existují však určité rozdíly: při přidávání číselných vlastností se kvalita délky může měnit a při změně vlastností délky je možné vyloučit číselné vlastnosti. Algoritmus pro nastavení vlastností polí je v zásadě následující:

  • Při přidání neznámé digitální vlastnosti i, je-li délka rovna nebo menší než i, je délka definována jako i + 1.
  • Při změně kvality délky jsou prováděny následující akce: pokud je přiřazená hodnota menší než nula, RangeError je hoden. Odstraňte všechny číselné vlastnosti a indexy, které se rovnají nové délce a které jsou větší.

Obecně platí, že odstranění prvku pole JavaScript není obtížné. Koneckonců, dokonce i nastavení délky, musíte odstranit "extra" komponenty z něj. Možnost čištění pole. Pokud přiřazená proměnná prázdného nového pole z nějakého důvodu nevyhovuje, ale je nutné zrušit aktuální, stačí přiřadit hodnotě nula jeho kvalitě.

Metody se nesmějí, posunou, vyskakují a tlačí

Ačkoli jsou komponenty pole ručně měněny, mnozí doporučují, abyste pro tento účel použili vestavěné metody. Právě tato nuance zaručuje správnou hodnotu délky kvality a absenci vynechání v poli. Mimochodem, správná délka bude odpovídat počtu komponent.

Metoda posunu přenáší přenesené části na konec pole. Metoda pop vrátí zadní komponentu a odstraní ji.

Obecně platí, že v aplikaci Internet Explorer v rámci osmé verze se unshift může vrátit nedefinovanému, v jiných prohlížečích - nové délce. Takže je lepší se nespoléhat na návratovou hodnotu z převodu.

Přidávání a odstraňování součástí uprostřed pole

Pokud potřebujete smazat pole JavaScript, co mám dělat? Je známo, že metoda sestřihu má podpis Array.prototype.splice.

Odstraní ze pole pole deleteCount komponent, počínaje začátkem. Pokud jsou předány více než dva argumenty, pak budou všechny následující argumenty v poli umístěny místo těch, které byly odstraněny. Pokud je start minus, index, ze kterého bude stažení pokračovat, se rovná délce + start. Návrat do pole je ze vzdálených prvků.

Ve skutečnosti pomocí metody sdružování můžete komponenty odebrat ze středu pole nebo přidat jakékoli číslo do libovolného místa v poli.

V nejjednodušší verzi, pokud chcete odebrat součást s indexem i, musíte požádat pole pro metodu sdružování s parametry i a 1.

V zásadě není druhý parametr metody sdružování povinný, ale chování funkce s jedním argumentem v každém prohlížeči je jiné.

Například ve Firefoxu, v nejnovějších verzích Opera, Safari a Chrome budou všechny detaily odstraněny na konec pole.

V IE nebude odstraněna žádná součást. V prvních variantách operace nelze chování předvídat - bude odebrána jedna položka s počátečním indexem, proto je vždy nutné tuto metodu přenést alespoň na dvě části.

Klíče

Samozřejmě, při studiu javascriptu, nemusejí být přehlédnuty ani asociativní pole, jak již bylo zmíněno výše. Jedná se o abstraktní typ informací (rozhraní k datovému skladu), které umožňuje ukládat dvojice formulářů "(klíč, hodnota)" a podporovat operace přidávání párů a také odstranění a vyhledávání párů klíčů:

- FIND (klíč).

- INSERT (hodnota, klíč).

- REMOVE (klíč).

Předpokládá se, že dvě dvojice s podobnými klávesami nemohou být uložena v asociativním poli. V páru se k + vv nazývá hodnota spojená s klícem k. Sémantika a názvy výše uvedených operací v různých implementacích těchto polí mohou být odlišné.

Takže akce FIND (klíč) vrací hodnotu přidruženou k zadanému klíči nebo určitému specifickému objektu UNDEF, což znamená, že hodnota přidružená k zadanému klíči chybí. Dvě další akce nevracejí nic (kromě toho, zda byla operace úspěšná).

Obecně z hlediska rozhraní je asociativní pole obvykle považováno za jednoduché pole, ve kterém lze nejen použít celá čísla jako indexy, ale i jiné typy hodnot - například řetězce.

Mimochodem, podpora takových polí je k dispozici v mnoha vysoce kvalifikovaných jazycích, jako jsou PHP, Perl, Ruby, Python, Tcl, JavaScript a další. Pro jazyky, které nemají vestavěné nástroje pro práci s asociativními poli, byl vytvořen obrovský počet implementací ve formě knihoven.

Příkladem asociativního pole může být telefonní seznam. V této variantě je hodnotou komplex "F. IO + adresu "a klíčové - telefonní číslo. Jedno telefonní číslo má jeden master, ale jedna osoba může vlastnit několik čísel.

Asociativní rozšíření

Je třeba poznamenat, že nejznámější rozšíření zahrnují následující akce:

  • VŠECHNY - "procházejte" všemi uloženými páry.
  • CLEAR - odstranění všech záznamů.
  • MIN - najít pár s nejmenší hodnotou tlačítka.
  • MAX - najít pár s nejvyšší hodnotou klíče.

V posledních dvou variantách je třeba zadat porovnávací akci na klávesách.

Implementace asociativních polí

Existuje mnoho různých implementací asociativního pole. Nejběžnější implementace může být založena na jednoduchém poli, jehož komponenty jsou dvojice (hodnota, klíč). Chcete-li urychlit vyhledávací akce, můžete uspořádat komponenty tohoto pole podle klíčů a provést vyhledávání pomocí binárního vyhledávání. Tím se však zvýší doba potřebná k přidání nového páru, protože bude nutné "rozšiřovat" součásti pole, aby se do prázdné buňky objevil nový záznam.

Nejznámější implementace jsou založeny na různých vyhledávacích stromech. Například v typické C ++ čítárně STL je mapová mapa implementována na základě černo-červeného stromu. Ve stylech Ruby, Tcl, Python se používá jeden z typů hash tabulky. Existují další implementace.

Obecně platí, že každá implementace má své vlastní nevýhody a výhody. Je důležité, aby všechny tři akce byly provedeny v průměrné a nejhorší nuanci pro období O (log n), kde n je aktuální počet uložených párů. U koordinovaných vyhledávacích stromů (včetně stromů černo-červených) je tato podmínka splněna.

Je známo, že v implementacích založených na stoly mřížky, průměrná doba je definována jako D (1), což je lepší než v akcích založených na vyhledávacích stromů. Samozřejmě, že to nezaručuje výkonnost vysokorychlostního samostatných operací: Vložte akční čas v nejhorším případě, označovaný jako O (N). INSERT proces probíhá po dlouhou dobu, pokud je poměr daň dosahuje nejvyšší bod, a tam je potřeba rekonstruovat index hash tabulky.

Mimochodem, tyto výroky hash špatné, že na tomto základě je možné provést rychlý další akce Max, Min, a algoritmus hledat všechny ukládá dvojice sestupně nebo vzestupně klíče.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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