Pridanie JavaScriptu do poľa. ▍Sila metódy include().

  • 18.06.2019

Popísal som len časť metód na prácu s poľami.

Tu budeme hovoriť o pridávaní a odstraňovaní prvkov poľa. O preklápaní a triedení poľa, ako aj o krájaní, nahrádzaní a kombinovaní polí.

Pridávanie prvkov do poľa.

Na pridanie nových prvkov do poľa môžete použiť vlastnosť length:

Var myArray = ["Apple", "Microsoft", "Google", "Facebook"]; myArray = "Yahoo!"; log konzoly (myArray); // ["Apple", "Microsoft", "Google", "Facebook", "Yahoo!"]

Toto bude fungovať, pretože prvky poľa sú číslované od nuly a dĺžka ešte jeden. Dĺžka vždy ekvivalentné index + 1, takže je veľmi jednoduché pridať nový prvok na koniec poľa. Je zvláštne, že môžete pridať prvok na pozíciu, ktorá je oveľa väčšia ako dĺžka samotného poľa:

Var myArray = ["Jimi Hendrix", "Eric Clapton", "Jimmy Page", "Keith Richards"]; myArray = "Lindsey Buckingham"; log konzoly (myArray); // ["Jimi Hendrix", "Eric Clapton", "Jimmy Page", "Keith Richards", nedefinované × 95, "Lindsey Buckingham"] console.log(myArray.length); // sto

Ako je uvedené v komentároch, pridá sa 95 prázdnych slotov a na koniec poľa sa pridá prvok „Lindsey Buckingham“. Potom dostaneme dĺžku 100. Ďalším spôsobom, ako pridať nový prvok do poľa, je použiť metódu tlačiť():

Var myArray = ["Paul McCartney", "John Lennon", "George Harrison"]; myArray.push("Ringo Starr", "George Martin"); log konzoly (myArray); // ["Paul McCartney", "John Lennon", "George Harrison", "Ringo Starr", "George Martin"]

Metóda tlačiť() vždy vráti novú dĺžku poľa (v našom prípade 5). Môžete pridať prvok s spoj():

Var myArray = ["žaluď", "buk", "mongongo", "makadamia"]; myArray.splice(2, 0, "kešu"); // pridá "kešu" do indexu 2 console.log(myArray); // ["žalud", "buk", "kešu", "mongongo", "makadamia"]

Keď je druhý argument 0, znamená to, že sa neodstráni žiadny prvok, a preto sa všetky nasledujúce argumenty pridajú do poľa na pozíciu špecifikovanú v prvom argumente.

Odstránenie prvkov z poľa

Odstránenie prvku je o niečo náročnejšie ako jeho pridanie. Ak chcete odstrániť prvok z konca poľa, môžete použiť pop():

Var myArray = ["7-up", "Sprite", "Ginger Ale", "Limonade"]; myArray.pop(); log konzoly (myArray); // ["7-up", "Sprite", "Ginger Ale"]

Metóda pop() vždy odstráni posledný prvok v poli a vráti ho.

Môžete tiež použiť spoj () metóda:

Var myArray = ["maniok", "muškátový oriešok", "lupina", "rebarbora"]; myArray Splice(2, 1); // odstránenie prvku na indexe 2 console.log(myArray); // ["maniok", "muškátový oriešok", "rebarbora"]

Na rozdiel od metódy spoj(), ktorý sa používa na pridávanie prvkov, tu je druhý argument 1, ktorý hovorí, že chceme odstrániť prvok s indexom 2 (alebo 3. v rade). V tomto prípade bol odstránený prvok "lupina".

Pomocou operátora môžete odstrániť prvok z poľa vymazať:

Var myArray = ["Byte Bandit", "Eliza", "Jeefo", "Michelangelo"]; console.log(myArray.length); // 4 delete myArray; // zmazať Eliza console.log(myArray.length); // 4 console.log(myArray); // ["Byte Bandit", undefined × 1, "Jeefo", "Michelangelo"]

Prvá dôležitá poznámka: vymazať () nezmení dĺžku poľa po odstránení prvku (aj keď to bol posledný prvok v poli). po druhé: vymazať () zmení hodnotu odstraňovaného prvku na nedefinovanú, takže pri prístupe myArray = nedefinované.

Dobrým spôsobom, ako odstrániť prvok z poľa, je použiť Array.remove od Johna Resiga. Nižšie je uvedený príklad použitia prevzatý z jeho stránky:

// Odstrániť pole – od Johna Resiga (licencia MIT) Array.prototype.remove = function(from, to) ( var rest = this.slice((to || from) + 1 || this.length); this.length = od< 0 ? this.length + from: from; return this.push.apply(this, rest); }; // Удаление 2 элемента из массива array.remove(1); // Удаление 2-ого элемента с конца массива array.remove(-2); // Удаление второго и третьего элемента array.remove(1,2); // Удаление последнего и предпоследнего элемента array.remove(-2,-1);

Možno by ste sa chceli pozrieť na riešenie od Viral Patel , jednu z funkcií v Underscore.js alebo grep() jQuery.

Okrem toho v JavaScript existuje metóda shift(), ktorý odstráni prvý prvok v poli a vráti jeho hodnotu. Pozrime sa na kód:

Var myArray = ["Matt Kramer", "Jason Bieler", "Tom Defile", "Phil Varone"]; console.log(myArray.length); // 4 var firstItem = myArray.shift(); console.log(firstItem); // Matt Kramer console.log(myArray.length); // 3 console.log(myArray); // ["Jason Bieler", "Tom Defile", "Phil Varone"]

Pomocou metódy posun() položku sme odstránili, ale jej hodnotu sme uložili do našej premennej firstItem. Dĺžka poľa sa zmenila zo 4 na 3.

Táto metóda môže byť užitočná spolu s metódou tlačiť(). Ich spoločným použitím môžeme efektívne zaradiť prvky do poľa. Dĺžku poľa uložíme tak, že odstránime prvok zo začiatku a na koniec pridáme nový.

Naopak, môžeme použiť metódu unshift() na pridanie prvku na začiatok poľa:

Var myArray = ["apito", "kastanety", "maraca"]; console.log(myArray.length); // 3 myArray.unshift("zvonček", "tan-tan"); console.log(myArray.length); // 5 console.log(myArray); // ["chime bar", "tan-tan", "apito", "castanets", "maraca"]

Použitie metódy unshift() s metódou pop(), môžete vytvoriť fronty v opačnom smere pridaním prvkov na začiatok a odstránením z konca poľa.

Preklápanie a triedenie prvkov poľa.

Na obrátenie prvkov v poli môžeme použiť spätne():

Var myArray = ["odpočítavanie", "konečné", "the"]; log konzoly (myArray); // ["odpočítavanie", "final", "the"] myArray = myArray.reverse(); log konzoly (myArray); // ["posledné odpočítavanie"]

Pomocou tejto metódy je možné triediť prvky poľa v abecednom poradí zoradiť ():

Var myArray = ["xylofóny", "zebry", "juggernauts", "avokádo"]; log konzoly (myArray); // ["xylofóny", "zebry", "juggernauts", "avokádo"] myArray = myArray.sort(); log konzoly (myArray); // ["avokádo", "juggernauts", "xylofóny", "zebry"]

Ale s číslami to nebude fungovať.

Var myArray = ; log konzoly (myArray); // myArray = myArray.sort(); log konzoly (myArray); //

Ak potrebujete zoradiť čísla, môžete použiť nasledujúci kód:

Funkcia porovnanieCisla(a, b) ( return a - b; ) var myArray = ; log konzoly (myArray); // myArray = myArray.sort(compareNumbers); log konzoly (myArray); //

Ako je znázornené vyššie, so zabudovanou jednoduchou funkciou zoradiť (), pole obsahujúce čísla bude správne zoradené.

Spojenie polí.

Môžeme zlúčiť 2 alebo viac polí a získať 1 pole, ktoré obsahuje prvky spojených polí. Na to používame metódu concate():

Var myArray = ["Jay Ferguson", "Andrew Scott"]; var myArray2 = ["Chris Murphy", "Patrick Pentland"]; var myNewArray = myArray.concat(myArray2); console.log(myNewArray); // ["Jay Ferguson", "Andrew Scott", "Chris Murphy", "Patrick Pentland"]

Var myArray = ["Jay Ferguson", "Andrew Scott"]; var myNewArray = myArray.concat("Chris Murphy", "Patrick Pentland"); console.log(myNewArray); // ["Jay Ferguson", "Andrew Scott", "Chris Murphy", "Patrick Pentland"]

Rozdelenie poľa.

Pomocou funkcie môžeme vytvoriť nové pole obsahujúce 1 alebo viac prvkov z existujúceho poľa plátok ():

Var myArray = ["spev", "basa", "gitara", "bicie", "jablká", "pomaranče"]; var myNewArray = myArray.slice(4); console.log(myNewArray); // ["Jablká", "Pomaranče"]

Metóda plátok () trvá 1 alebo 2 argumenty. Ak je odovzdaný 1 argument (index), vytvorí sa nové pole zo všetkých prvkov starého, počnúc daným indexom. Ak sú zadané 2 argumenty, potom sa vytvorí nové pole z prvkov počnúc prvým argumentom až po prvok s indexom odovzdaným v druhom parametri, bez posledného. Aby to bolo jasnejšie, pozrime sa na kód nižšie:

Var myArray = ["spev", "basa", "gitara", "bicie", "jablká", "pomaranče"]; var myNewArray = myArray.slice(0, 4); console.log(myNewArray); // ["Vokál", "Basa", "Gitara", "Bubny"]

Nahradenie prvkov v poli.

Používame spoj () na odstránenie prvkov z poľa, ale môžeme tiež nahradiť prvok v poli novými prvkami:

Var myArray = ["Rivers Cuomo", "Patrick Wilson", "Brian Bell", "Matt Sharp"]; myArray.splice(3, 1, "Scott Shriner"); // nahradenie 1 prvku v indexe 3 console.log(myArray); // ["Rivers Cuomo", "Patrick Wilson", "Brian Bell", "Scott Shriner"]

Metóda spoj () vždy vráti pole obsahujúce prvky, ktoré boli odstránené. Riadok 2 vráti 1 položku „Brian Bell“.

Záver

Tieto články popisujú metódy práce s poľami v JavaScripte. Na MDN sú niektoré ďalšie položky, ktoré som do tohto príspevku nezahrnul. Fungujú iba v IE9+, takže nemusia byť užitočné.

Chcete niečo dodať? Alebo poznáte nejakú zaujímavú knižnicu, ktorá vám pomôže spravovať polia? Komentujte prosím!

Aký je rozdiel medzi poľom a premennou

Aby som lepšie pochopil, čo sú polia v Javascripte a v akomkoľvek inom programovacom jazyku, ukážem príklady na skutočných objektoch zo života.

Keď prídete do supermarketu, môžete vidieť skriňu s bunkami, v jednej z nich si môžete dať svoje veci.

Každá bunka má číslo. Podľa tohto čísla môžete na konci nákupov pochopiť, v ktorej bunke sa vaše veci nachádzajú.

Analogicky môžeme zavolať premenlivý jedna bunka skrine, v ktorej máte uložené veci, a všetky bunky pole.

Ako vytvoriť pole v Javascripte

V Javascripte je možné pole vytvoriť mnohými spôsobmi.

Prvý spôsob, ako vytvoriť pole v Javascripte

Takto pre číselné údaje a objekty:

Takto pre reťazce:

Týmto spôsobom sme vytvorili pole štyroch prvkov.

Druhý spôsob vytvorenia poľa v Javascripte

Druhý spôsob vytvárania polí v Javascripte je cez objekty.

Vyzerá to takto:

pole = new Array(1, 23, 15, 10, 33);

V prípade údajov reťazca poľa musia byť reťazce uvedené v úvodzovkách.

Ako odkazovať na pole v Javascripte

Ak chcete získať prístup k prvému prvku poľa, napíšte:

kde, dostaneme prvý prvok poľa - pole. Console.log - zobrazuje obsah poľa.

Číslovanie polí začína od nuly. Preto keď sa otočíme pole dostaneme hodnotu prvého prvku 1 alebo v príklade s reťazcami - One.

Array Methods

Javascript má metódy na prácu s poľami. Tieto metódy sú veľmi užitočné a niektorí programátori sa im z nejakého dôvodu vyhýbajú a píšu si vlastné bicykle.

Obrátená metóda

Obrátená metóda upraví pole a vytvorí nové pole s prvkami v opačnom poradí.

Príklad:

pole = ["Jeden", "Dva", "Tri", "Štyri"];

pole.reverse();

výsledok:

["Štyri", "Tri", "Dva", "Jedna"]

Concat metóda

Metóda concat spája pole s iným poľom alebo údajmi. Metóda concat nemení pôvodné pole.

Príklad:

pole = ["Jeden", "Dva", "Tri", "Štyri"];

pole concat(12);

výsledok:

["Jeden", "Dva", "Tri", "Štyri", 12]

Metóda plátkov

Metóda slice odreže časť reťazca a môže mať ako vstup dva parametre (začiatok a koniec) a jeden parameter.

Ak je druhý parameter nastavený na -1, vráti zvyšok reťazca s predposledným prvkom.

Metóda slice nemení pôvodné pole.

Príklad:

pole = ["Jeden", "Dva", "Tri", "Štyri"];

pole slice(1,-1);

výsledok:

Splice metóda

Metóda spájania je pomerne všestranná.

Ako vstup sú potrebné tri argumenty:

2. Počet prvkov poľa, ktoré sa majú odstrániť

3. Tretím argumentom sú hodnoty, ktoré je potrebné vložiť tam, kde sme odstránili prvky poľa

Metóda spájania modifikuje pôvodné pole.

Príklad:

pole = ["Jeden", "Dva", "Tri", "Štyri"];

array.splice(1, 2, "2", "3");

výsledok:

["Jedna", "2", "3", "Štyri"]

Tretí argument v metóde spájania je voliteľný. Ak nepoužijete tretí argument, metóda splice odstráni prvky poľa špecifikované v prvých dvoch argumentoch a vráti nové pole bez týchto prvkov.

Push metóda

Metóda push vloží prvok na koniec poľa

Príklad:

pole = ["Jeden", "Dva", "Tri", "Štyri"];

array.push("Päť");

výsledok:

["Jeden dva tri štyri päť"]

Metóda UnShift

Metóda unshift vloží prvok na začiatok poľa

Príklad:

pole = ["Jeden", "Dva", "Tri", "Štyri"];

array.unshift("Nula");

výsledok:

["Nula", "Jedna", "Dva", "Tri", "Štyri"]

Pop metóda

Metóda pop odstráni posledný prvok z poľa a vráti odstránený prvok.

Príklad:

pole = ["Jeden", "Dva", "Tri", "Štyri"];

pole.pop();

výsledok:

["Jeden dva tri"]

Metóda posunu

Metóda shift odstráni prvý prvok z poľa a vráti odstránený prvok.

Príklad:

pole = ["Jeden", "Dva", "Tri", "Štyri"];

výsledok:

["Dva tri štyri"]

Metóda pripojenia

Metóda join v Javascripte konvertuje pole na reťazec a umožňuje vám nastaviť si vlastný oddeľovač. Metóda spojenia štandardne používa ako oddeľovač čiarku. Skúsme dať oddeľovač "-".

Príklad:

pole = ["Jeden", "Dva", "Tri", "Štyri"];

pole.join("-");

výsledok:

Jeden dva tri štyri

Spôsob triedenia

Metóda Soft štandardne triedi pole podľa abecedy. Môžeme jej odovzdať funkciu s inou logikou triedenia. Budeme o tom hovoriť v samostatnom článku venovanom metódam samostatne.

Príklad:

pole = ["a", "c", "b", "d"];

výsledok:

["a B C d"]

Práca s poliami v slučkách

Slučky sú veľmi dôležité metódy pre prácu s poľami. Pomocou nich môžeme pristupovať k jedinému prvku poľa a prechádzať celým poľom.

slučka FOR

Jednoduchá slučka na precyklenie cez pole

Príklad:

výsledok:

Jeden
Dva
Tri
Štyri

Pre každú slučku

Vylepšená slučka pre iteráciu cez pole. Ako vstup môže mať tri prvky: prvok, index, pole.

Príklad 1:

výsledok:

Jeden
Dva
Tri
Štyri

Príklad 2:

Metóda toUpperCase() používa veľké písmená vo všetkých prvkoch

výsledok:

["JEDEN DVA TRI ŠTYRI"]

Závery o poliach v Javascripte

V Javascripte existuje veľa metód na prácu s poľami. V tomto článku sme nezvážili všetky metódy, v nasledujúcich článkoch sa im určite budeme venovať, no ak viete, ako používať metódy práce s poľami z tohto článku, vaša zručnosť bude plus 150 percent a vy výrazne zvýši vašu úroveň frontend vývojára v programovacom jazyku Javascript.

Zostaňte naladení na nové články a videonávody, prihláste sa na odber náš kanál YouTube a pripojte sa ku skupine

V tomto článku sa pozrieme na pole JavaScript a jeho komponenty. JavaScript je ideálne orientovaný a určený na programovanie. V skutočnosti implementuje jazyk ECMAScript (odkaz ECMA-262).

Kde sa používa JavaScript? Používa sa ako vložiteľný jazyk na definovanie programovej cesty k objektu aplikácie. Nachádza sa v prehliadačoch, kde sa používa ako skriptovací jazyk, vďaka ktorému sú webové stránky interaktívne.

Najdôležitejšími architektonickými vlastnosťami tohto produktu sú dynamické a slabé písanie, automatická správa pamäte, dokonalé programovanie a funkcie, ktoré sú prvotriednymi objektmi.

Vo všeobecnosti bol JavaScript ovplyvnený rôznymi dôvodmi, pretože počas vývoja chceli vytvoriť jazyk podobný Jave, ale pre programátorov ľahko ovládateľný. Mimochodom, JavaScript nie je pôvodný pre žiadny podnik alebo organizáciu, čím sa líši od množstva programovacích štýlov používaných webovými vývojármi.

Je potrebné poznamenať, že JavaScript je registrovaná ochranná známka spoločnosti Oracle Corporation.

Čo je pole?

Volá sa pole, ktoré ukladá očíslované hodnoty. Každá takáto hodnota sa nazýva komponent poľa a číslica, ku ktorej je komponent priradený, sa nazýva index. Pole JavaScriptu nie je zadané. To znamená, že časti poľa môžu byť akéhokoľvek typu a rôzne časti patriace do rovnakého poľa majú úplne odlišné typy.

Pole JavaScript je navyše dynamické, čo znamená, že nie je potrebné deklarovať pevnú veľkosť. Koniec koncov, môžete kedykoľvek pridať nové podrobnosti.

Výroba polí

Pomocou JavaScriptu nie je vytvorenie poľa vôbec ťažké. Sú na to dva spôsoby. Prvý zahŕňa vytvorenie poľa pomocou doslovných hranatých zátvoriek, vo vnútri ktorých je zoznam častí oddelených čiarkami.

  • var prázdny = ; //prázdne pole;
  • var čísla = ; //pole s piatimi digitálnymi komponentmi;
  • var diff = ; //pole s tromi prvkami rôznych typov.

Spravidla sa tu nevyžaduje, aby hodnoty boli jednoduché (reťazce a čísla). Môžu to byť aj akékoľvek iné výrazy, ako napríklad predmetové literály, iné funkcie a polia.

Druhý spôsob, ako vytvoriť pole, je zavolať návrhára Array(). Pozvať ho môžete tromi spôsobmi:

  • Volanie návrhára bez argumentov: var b - new Array(). To umožňuje vytvorenie prázdneho poľa ekvivalentného prázdnemu literálu .
  • Konštruktor explicitne špecifikuje hodnotu n komponentov poľa: var b = new Array(1, 3, 5, 8, "string", true). V tomto prípade sa dizajnérovi zobrazí zoznam argumentov, ktoré sa premenia na komponenty nového poľa. Argumenty sa zapisujú do poľa v mieste, kde sú špecifikované.
  • Určenie plochy pre následné priradenie hodnôt. To sa dosiahne špecifikovaním poľa jedného čísla uzavretého v zátvorkách pri identifikácii: var b = new Array(5). Táto metóda detekcie zahŕňa pridelenie požadovaného počtu komponentov do poľa (každá z nich je uvedená ako nedefinovaná) s možnosťou následného priradenia hodnôt v procese prezentácie. Tento formulár sa zvyčajne používa na predbežné pridelenie poľa Javascript, ktorého dĺžka je vopred známa.

Zápis, čítanie a pridávanie detailov poľa

Ku komponentom poľa môžete pristupovať pomocou . Mimochodom, všetky komponenty v JavaScripte, počnúc nulou, sú očíslované. Na získanie požadovaného prvku je jeho číslo uvedené v Spravidla je možné zmeniť podrobnosti. A aby sa JavaScript pridal do poľa, stačí priradiť novú hodnotu.

Je potrebné poznamenať, že polia JavaScript môžu ukladať ľubovoľný počet prvkov akéhokoľvek druhu.

Dĺžka poľa

Takže vieme, že dĺžka poľa je vo všeobecnosti zaujímavým fenoménom. Pozrime sa na to podrobnejšie. Všetky polia, či už skonštruované pomocou návrhára Array() alebo identifikované literálom poľa, majú špecifickú vlastnosť length, ktorá vracia celkový počet prvkov, ktoré sa majú uložiť. Keďže pole môže obsahovať nedefinované časti (označené ako nedefinované), presnejšie vyjadrenie je: kvalita dĺžky je vždy o jednu viac ako najväčšie číslo (index) komponentu poľa. Kvalita dĺžky sa nastavuje automaticky a zostáva presná, keď sa v poli objavia nové diely.

Môžete použiť vlastnosť length, aby sa zobrazil konečný komponent poľa.

Posledná časť má index o jeden menší ako je veľkosť poľa. Koniec koncov, odpočítavanie vždy začína od nuly. Ach ten JavaScript! Dĺžka poľa závisí od presného počtu prvkov. Preto, ak neviete, koľko by ich malo byť, ale potrebujete odkazovať na konečný prvok poľa, musíte použiť zápis: v.length - 1.

Opakovanie podrobností poľa

Veľmi často sa vlastnosť length používa na iteráciu detailov poľa v slučke:

  • var ovocie = ["jahoda", "broskyňa", "jablko", "banán"];
  • for(var I = 0; i< fruits.lenght; i++);
  • document.write(ovocie[i] + "...").

V tomto príklade sa zdá, že komponenty sú umiestnené súvisle a začínajú v prvej časti, ktorá vlastní index nula. Ak to tak nie je, pred volaním každého prvku poľa musíte skontrolovať, či je definovaný.

Slučka sa niekedy používa aj na inicializáciu komponentov.

Prírastok a skrátenie poľa

Zaujímalo by ma, ako pridať reťazec do poľa pomocou JavaScriptu? V procese práce s poľami sa kvalita dĺžky automaticky zlepšuje, preto sa o to musíme postarať sami. Je potrebné si zapamätať jeden detail – vlastnosť length je nielen čitateľná, ale aj zapisovateľná. Ak je kvalite dĺžky priradená hodnota, ktorej veľkosť je menšia ako aktuálna, pole sa zníži na zadanú hodnotu. Všetky komponenty, ktoré nie sú v novom rozsahu indexov, sa zahodia a ich hodnoty sa stratia, aj keď sa dĺžka neskôr vráti – hodnoty sa neobnovia.

Je celkom jednoduché vyčistiť pole takto: foo.length = 0.

Ak je kvalita dĺžky väčšia ako jej aktuálna hodnota, na konci poľa sa objavia nové nenastavené časti, ktoré ho zväčšia na požadovanú veľkosť.

Odstránenie detailov vzoru

Operátor vymazania nastaví komponent poľa na nedefinovaný, kým naďalej existuje. Ak chcete odstrániť prvok poľa JavaScript, aby sa zvyšné časti presunuli do uvoľneného priestoru, musíte použiť jednu z poskytnutých metód poľa. Metóda Array.shift() eliminuje prvý komponent, pop() posledný komponent a metóda splice() eliminuje jeden alebo celý rad komponentov kdekoľvek v poli.

Polia sú viacrozmerné

Zdá sa, že máme trochu náskok, 2D polia sú to, na čo sa musíme pozrieť ďalej. Pamätáte si, že polia JavaScript môžu obsahovať ďalšie prvky ako komponenty? Táto funkcia sa používa na vytváranie viacrozmerných polí. Ak chcete navštíviť komponenty v rade polí, stačí použiť hranaté zátvorky dvakrát.

Asociatívne polia

Teraz sa pozrime, ako ochranná známka JavaScript používa asociatívne polia. Aby sme to dosiahli, musíme sa pozrieť do teórie: asociatívne polia sa niekedy nazývajú hašovacie tabuľky. Vďaka nim sa namiesto indexov používajú reťazce. Použitie takýchto konštrukcií sa podobá použitiu názvu vlastnosti jednoduchého objektu, ale v tomto prípade pri vykonávaní práce vo formáte poľa. Keďže v JavaScripte neexistujú žiadne spôsoby, ako pracovať s asociatívnymi poliami, používajú sa oveľa menej často ako bežné polia. Je potrebné poznamenať, že stále môžu byť užitočné na ukladanie údajov a uľahčujú zapamätanie podrobností, ku ktorým je potrebné pristupovať.

Výstup poľa

A čo teraz budeme študovať v systéme JavaScript? Zobrazenie poľa v dialógovom okne (na obrazovke monitora), ako aj výstup hodnôt komponentov poľa.

Ak program potrebuje zobraziť hodnoty všetkých komponentov, je vhodné na to použiť príkaz for. Je zaujímavé, že premenná počítadla pravidiel for sa používa ako index komponentu poľa.

čistenie

Ak chcete filtrovať pole JavaScript, musíte nastaviť jeho dĺžku na nulu:

  • var myArray = ;
  • myArray.length = 0.
  • clear: function() (;
  • táto dĺžka = 0;
  • vrátiť toto;

Pridávanie a odoberanie komponentov

Pokračujeme v ďalšom štúdiu tohto zaujímavého jazyka JavaScript. Prvok poľa je možné odstrániť aj pridať rovnakým spôsobom ako bežné vlastnosti iných objektov. Sú tu však určité rozdiely: pri pridávaní číselných vlastností sa môže meniť kvalita dĺžky a pri úprave vlastnosti dĺžky možno číselné kvality eliminovať. Algoritmus na nastavenie kvality polí je v zásade nasledujúci:

  • Pri pridávaní neznámej číselnej vlastnosti i, ak je dĺžka rovná alebo menšia ako i, sa dĺžka určí ako i+1.
  • Keď sa zmení kvalita dĺžky, vykonajú sa nasledujúce akcie: ak je priradená hodnota menšia ako nula, vyvolá sa chyba RangeError. Odstráňte všetky číselné kvality a indexy, ktoré sú rovnaké alebo väčšie ako nová dĺžka.

Vo všeobecnosti je odstránenie prvku poľa JavaScriptu jednoduché. Koniec koncov, dokonca aj nastavenie dĺžky, musíte z neho odstrániť "extra" komponenty. Preto možnosť vymazať pole. Ak vám z nejakého dôvodu nevyhovovala priradená premenná prázdneho nového poľa, ale je potrebné vynulovať aktuálnu, stačí nastaviť jej kvalitu dĺžky na nulu.

metódy unshift, shift, pop a push

Hoci sa komponenty poľa upravujú manuálne, mnohí ľudia na to odporúčajú použiť vstavané metódy. Práve táto nuansa zaručuje správnu hodnotu kvality dĺžky a absenciu medzier v poli. Mimochodom, správna dĺžka kvality bude zodpovedať počtu komponentov.

Metóda push presunie prechádzajúce časti na koniec poľa. Metóda pop vráti koncový komponent a odstráni ho.

Vo všeobecnosti v Internet Exploreri pred verziou 8 môže funkcia unshift vrátiť hodnotu nedefinovaná, v iných prehliadačoch môže vrátiť novú hodnotu dĺžky. Takže je lepšie nespoliehať sa na hodnotu vrátenú z nestriedanosti.

Pridávanie a odstraňovanie detailov v strede poľa

Ak potrebujete odstrániť pole JavaScript, čo by ste mali urobiť? Je známe, že metóda spájania má podpis Array.prototype.splice.

Odstráni komponenty deleteCount z poľa, počnúc počiatočným indexom. Ak sú odovzdané viac ako dva argumenty, všetky nasledujúce argumenty v poli sa umiestnia na miesto eliminovaných. Ak je začiatok záporný, potom index, od ktorého bude výber pokračovať, sa bude rovnať dĺžke + začiatku. Návrat do poľa pochádza z odstránených prvkov.

V skutočnosti pomocou metódy spájania môžete odstrániť komponenty zo stredu poľa alebo pridať ľubovoľný počet komponentov kdekoľvek v poli.

V najjednoduchšej verzii, ak potrebujete odstrániť komponent s indexom i, musíte požiadať o metódu spojenia z poľa s parametrami i a 1.

V princípe je druhý parameter metódy splice voliteľný, ale správanie funkcie s jedným argumentom je v každom prehliadači iné.

Napríklad vo Firefoxe, v najnovších verziách Opery, Safari a Chrome budú všetky podrobnosti odstránené až do konca poľa.

V IE sa žiadna z komponentov nezničí. V prvých variáciách Opery je nemožné predvídať správanie - bude odstránená jedna časť so štartom indexu - 1. Preto musia byť do tejto metódy vždy odovzdané aspoň dva komponenty.

kľúče

Samozrejme, pri učení JavaScriptu by sa nemali prehliadať ani asociatívne polia, ako už bolo spomenuté. Ide o abstraktný typ informácie (rozhranie s dátovým úložiskom), ktorý umožňuje ukladať dvojice vo forme „(kľúč, hodnota)“ a podporovať operácie pridávania páru, ako aj mazanie a vyhľadávanie párov pomocou kľúč:

NÁJSŤ (kláves).

INSERT(hodnota, kľúč).

ODSTRÁNIŤ (kláves).

Predpokladá sa, že dva páry s podobnými kľúčmi nemožno uložiť do asociatívneho poľa. V páre k + v v sa nazýva hodnota spojená s kľúčom k. Sémantika a názvy vyššie uvedených operácií v rôznych implementáciách takýchto polí sa môžu líšiť.

Akcia FIND (kľúč) teda vráti hodnotu priradenú k danému kľúču, alebo nejakému špecifickému objektu UNDEF, čo znamená, že k danému kľúču nie je priradená žiadna hodnota. Ďalšie dve akcie nevracajú nič (okrem toho, či bola operácia úspešná alebo nie).

Vo všeobecnosti je z hľadiska rozhrania vhodné považovať asociatívne pole za jednoduché pole, v ktorom môžu byť ako indexy použité nielen celé čísla, ale aj hodnoty iných typov, napríklad reťazce. .

Mimochodom, podpora pre takéto polia je dostupná v mnohých programovacích jazykoch na vysokej úrovni, ako sú PHP, Perl, Ruby, Python, Tcl, JavaScript a ďalšie. Pre jazyky, ktoré nemajú vstavané nástroje na prácu s asociatívnymi poľami, bolo vytvorených veľké množstvo implementácií vo forme knižníc.

Príkladom asociatívneho poľa je telefónny zoznam. V tomto variante je hodnotou komplex „F. I. O. + adresa “ a kľúčom je telefónne číslo. Jedno telefónne číslo má jedného vlastníka, no jedna osoba môže vlastniť viacero čísel.

Asociatívne rozšírenia

Je potrebné poznamenať, že medzi najznámejšie rozšírenia patria nasledujúce akcie:

  • KAŽDÝ - "prechádzať" cez všetky uložené páry.
  • VYMAZAŤ - odstránenie všetkých záznamov.
  • MIN - nájdite pár s najmenšou hodnotou kľúča.
  • MAX - nájdite pár s najvyššou hodnotou kľúča.

V posledných dvoch možnostiach je potrebné, aby na klávesoch bola uvedená porovnávacia akcia.

Implementácia asociatívnych polí

Existuje mnoho rôznych implementácií asociatívneho poľa. Najbežnejšia implementácia môže byť založená na jednoduchom poli, ktorého komponentmi sú páry (hodnota, kľúč). Na urýchlenie hľadania si môžete objednať komponenty tohto poľa podľa kľúča a nájsť pomocou. Tým sa však predĺži čas potrebný na pridanie nového páru, pretože budete musieť komponenty poľa „odstrčiť“, aby ste mohli zabaliť nový vstup do prázdnej bunky, ktorá sa objaví.

Najznámejšie implementácie sú založené na rôznych vyhľadávacích stromoch. Napríklad v typickej čítačke C++ STL je mapový kontajner implementovaný na základe čierno-mahagónového stromu. Štýly Ruby, Tcl, Python používajú jeden z typov hašovacích tabuliek. Existujú aj iné implementácie.

Vo všeobecnosti má každá implementácia svoje výhody a nevýhody. Je dôležité, aby sa všetky tri akcie vykonali v priemere aj v najhoršom odtieni za obdobie O(log n), kde n je aktuálny počet uložených párov. V prípade zhodných vyhľadávacích stromov (vrátane čierno-červených stromov) je táto podmienka splnená.

Je známe, že pri implementáciách založených na hashovacích tabuľkách je priemerný čas definovaný ako O(1), čo je lepšie ako pri akciách založených na vyhľadávacích stromoch. To samozrejme nezaručuje vysokú rýchlosť vykonávania jednotlivých operácií: čas vykonania INSERT je v najhoršom prípade označený ako O(n). Proces INSERT trvá dlho, keď faktor plnenia dosiahne svoj najvyšší bod a je potrebné rekonštruovať index hašovacej tabuľky.

Mimochodom, tieto hash zoznamy sú zlé, pretože na ich základe nie je možné vykonávať rýchle dodatočné akcie MAX, MIN a algoritmus na obídenie všetkých uložených párov v zostupnom alebo vzostupnom poradí kľúčov.

Naučte sa indexovať polia v js, odstraňovať a pridávať ich prvky.

Pole v JavaScripte je globálny objekt určený na ukladanie zoznamu hodnôt.

Podobá sa iným premenným v tom, že môže ukladať akýkoľvek typ údajov. Pole má však jeden dôležitý rozdiel od premennej: môže uložiť viac ako jeden prvok naraz.

Pole je usporiadaná kolekcia hodnôt. Každá hodnota sa nazýva prvok a má svoje vlastné číslo, ktoré sa nazýva index.

Prvok v poli môže byť akéhokoľvek typu. Okrem toho môžu byť prvky jedného poľa rôznych typov: čísla, reťazce, logické prvky a dokonca aj objekty alebo iné polia.

Poradie prvkov poľa je založené na nule. Ukazuje sa, že pole bude mať index vždy posunutý o jednu: prvý prvok bude mať index 0 , druhý bude mať index 1 atď.

Tu je príklad poľa s prvkami rôznych typov:

Vytvorenie (deklarovanie) poľa

Polia sú veľmi pohodlné, pretože do nich môžete uložiť toľko údajov, koľko potrebujete. Maximálna možná veľkosť poľa js je 2 32 prvkov.

Musíme JavaScriptu povedať, že chceme vytvoriť pole. Existujú dve možnosti: hodnota v hranatých zátvorkách alebo nové kľúčové slovo.

Skratka: pomocou hranatých zátvoriek

Zoznam hodnôt oddelených čiarkami v hranatých zátvorkách.

var myArray = [ "Jack", "Sawyer", "John", "Desmond" ];

Obsah poľa je určený tým, čo je medzi hranatými zátvorkami. Každá hodnota je oddelená čiarkou.

Hodnoty sa nastavujú rovnakým spôsobom ako jednoduché premenné, to znamená, že reťazce musia byť deklarované v úvodzovkách atď.

Ak chcete deklarovať prázdne pole, nechajte zátvorky prázdne:

var myArray = ;

Dlhá poznámka: Použitie konštruktora Array().

var lostArray = new Array("Jack", "Sawyer", "John", "Desmond"); var twinPeaksArray = new Array("Laura", 2, ["Bob", "Leland", "Dale"]);

Nové kľúčové slovo hovorí JavaScriptu, aby vytvoril nové pole, ktorého hodnoty sa odovzdajú ako parametre.

Ak vopred viete, koľko prvkov bude mať vaše pole, môžete túto hodnotu okamžite odovzdať v konštruktore.

var myArray = new Array(80);

Vyššie uvedený výraz vytvorí prázdne pole 80 slotov s nedefinovanými hodnotami.

Vyhlásenie prázdneho poľa:

var myArray = new Array();

Prístup k prvkom poľa

Pomocou indexu každého prvku môžete pracovať s akýmikoľvek údajmi v poli a pristupovať k nim pomocou operátora:

var myArray = ["Jack", "Sawyer", "John", "Desmond"]; log konzoly (myArray); // Vypíše "Jack" console.log(myArray); // Vytlačí "Desmond"

Pole môže mať viacero úrovní, čo znamená, že každý prvok môže byť poľom. Výsledkom je dvojrozmerné js-pole. Ako odkazovať na tieto polia, ktoré sa nachádzajú vo vnútri iných - " viacrozmerné polia»?

Uvažujme napríklad pole predstavujúce rodinu. Deti z tejto rodiny sú zaznamenané v samostatnom poli v hlavnom:

var familyArray = ["Marge", "Homer", ["Bart", "Lisa", "Maggie"]];

Môže byť reprezentovaný nasledovne:

Ak chcete zobraziť hodnotu "Lisa":

varlisa = familyArray; log konzoly (lisa); // vytlačí "Lisa"

Takto možno pokračovať takmer donekonečna, čo vám umožňuje ukladať vnorené množiny údajov do polí a pristupovať k nim pomocou indexov.

Pridávanie prvkov do poľa

Zistili sme, ako pristupovať k prvkom poľa pomocou ich príslušných indexov. Podobne môžete pridať (alebo zmeniť) prvky deklarovaním, napríklad:

var myArray = [ "Kate", "Slnko"]; myArray = "Júlia"; log konzoly (myArray); // Vytlačí "Kate, Sun, Juliet"

Čo sa stane, ak deklarujem prvok v indexe, ktorý nemá pred sebou žiadne ďalšie prvky? Samotné pole vytvorí všetky chýbajúce prvky a priradí im hodnotu undefined:

var myArray = ["Kate", "Slnko"]; myArray = "Júlia"; console.log(myArray.length); // Vypíše "6" console.log(myArray); // Vytlačí ["Kate", "Sun", undefined, undefined, undefined, "Juliet"]

Pomocou vlastnosti length môžete zistiť, aké dlhé je pole js. Vo vyššie uvedenom príklade je v poli šesť prvkov a tri z nich nemajú pridelenú hodnotu – sú označené ako nedefinované .

metóda push().

Pomocou metódy push() môžete pridať jeden alebo viac prvkov do poľa js. Push() akceptuje neobmedzený počet parametrov, všetky sa pridajú na koniec poľa.

var myArray = [ "Kate", "Sut"]; myArray.push("Júlia"); // Pridá prvok "Juliet" na koniec poľa myArray.push("Libby", "Shannon");// Pridá prvky "Libby" a "Shannon" na koniec poľa console.log(myaArray ); // Tlačí ["Kate", "Sun", "Juliet", "Libby", "Shannon"]

metóda unshift().

Metóda unshift() funguje rovnako ako push() s tým rozdielom, že pridáva prvky na začiatok poľa.

var myArray = [ "Kate", "Slnko"]; myArray.unshift("Júlia"); // Pridá prvok "Juliet" na začiatok poľa myArray.unshift("Libby", "Shannon"); // Pridá prvky "Libby" a "Shannon" na začiatok poľa console.log(myArray); // Výstupy ["Libby", "Shannon", "Juliet", "Kate", "Sun"]

Odstránenie prvkov poľa

metódy pop() a shift().

Metódy pop() a shift() odstraňujú posledný a prvý prvok poľa:

var myArray = ["Jack", "Sawyer", "John", "Desmond", "Kate"]; myArray.pop(); // Odstráni prvok "Kate" myArray.shift(); // Odstráni prvok "Jack" console.log(myArray); // Výstupy ["Sawyer", "John", "Desmond"]

metóda splice().

Pomocou metódy splice() môžete odstrániť alebo pridať prvky do poľa a zároveň zadať presný index prvkov.

V nasledujúcom príklade metóda splice() pridáva dva prvky začínajúce na indexe 2 ( teda z tretieho elementu):

var fruitArray = ["jablko", "broskyňa", "pomaranč", "citrón", "limetka", "čerešňa"]; fruitArray.splice(2, 0, "melón", "banán"); console.log(fruitArray); // Výstupy ["jablko", "broskyňa", "melón", "banán", "pomaranč", "citrón", "limetka", "čerešňa"]

Prvým parametrom metódy splice() je index. Určuje, na ktorej pozícii sa majú pridať/odobrať prvky. V našom príklade sme zvolili index 2 ( čo znamená "oranžový").

Druhým parametrom je počet prvkov, ktoré sa majú odstrániť. Zadali sme hodnotu 0, takže sa nič nevymaže.

Nasledujúce parametre sú voliteľné. Do poľa pridávajú nové hodnoty. V našom prípade musíme pridať „melón“ a „banán“, počnúc indexom 2.