Arrays in javascript, javascript

Elem kitöltéséhez helyezze az indexet szögletes zárójelbe. Az első index 0:

Hoppá! Készítettünk egy tömböt két gyümölcszel és egy szamárral. Most el kell távolítanunk a szamarat.

Pop és push módszerek

A következő példa azt mutatja be, hogyan érhető el a "szamár" egy tömbből:

Vegye figyelembe, hogy a pop maga módosítja a tömböt.

Az analóg pop a push módszer. amely hozzáad egy elemet a tömbhöz. Például elfelejtettük hozzá egy őszibarackot:

Feladat az önmegvalósításhoz

  1. Hozzon létre egy sor tömböt a "Jazz", "Blues" elemekkel;
  2. Adja hozzá a "Rock'n'Roll" értékét;
  3. Cserélje ki a második értéket a végén a "Classic" értékkel. Meg kell szerezned egy tömböt: "Jazz", "Classic", "Rock'n'Roll". A kódnak törekednie kell a tömb bármely hosszára;
  4. Vegye ki az utolsó értéket a tömbből és küldje el figyelmeztető jelzéssel.

Shift / unshift módszerek

És a váltás. és az unshift egyszerre több elemet is képes működni:

Feladat az önmegvalósításhoz

Írja be a kódot arra, hogy riasztáson keresztül jelezze a véletlen értéket az arr tömbtől:

Megjegyzés: A véletlen szám megszerzésének kódja a legkisebbtől a maximális értékig (beleértve a következőket) a következő:

Véletlen számot kell kitölteni 0-ról arr.length-1-re (beleértve):

Array túlcsordulás

Feladat az önmegvalósításhoz

Hozz létre a találatot (arr, value) függvényt. amely megtalálja az értéket a megadott tömbben és visszaadja indexét vagy -1 értéket. ha nincs érték.

Lehet, hogy egy lehetséges megoldás így néz ki:

De ez nem igaz, mert a == nem adja meg a különbséget a 0 és a false között.

Még célszerűbb lenne meghatározni a keresést egy feltétellel annak ellenőrzésére, hogy létezik-e az indexOf módszer.

Feladat az önmegvalósításhoz

Funkciószűrő létrehozásaNumerikus (arr). amely tömböt vesz fel és egy új tömböt visz vissza, amely csak a numerikus értékeket tartalmazza.

Példa arra, hogyan működjön ez:

A megoldás az, hogy átmegy a tömbön, és hozzáadja az értékeket az új tömbhöz, ha numerikusak.

csatlakozzon és osztódjon

Egy tömböt a megadott határolójelet használó karaktersorozatba egyesít:

A fordított transzformáció könnyen megvalósítható a split módszerrel:

Feladat az önmegvalósításhoz

Az objektum tartalmazza a className tulajdonságot. amely az osztályneveket szóközökkel elválasztja:

Írja be a addClass függvényt (obj, cls). amely hozzáadja az osztály kls. de csak akkor, ha nem létezik:

Szüntesse meg az osztálynevet és a hurokot részekre. Ha az osztály nem található, akkor hozzáadódik hozzá.

A ciklus enyhén optimalizált a nagyobb teljesítmény érdekében:

A fenti példában a c változó a hurok elején van meghatározva, és az utolsó index értéke i.

A hossza egy tömb csonkolásához

A hossz tulajdonság segítségével a következőképpen vághat egy tömböt:

Megadja a hosszt, és a böngésző levágja a tömböt.

Az Array egy objektum, amely ebből következik

Ez különbözik a fogalomtól más nyelveken, ahol a tömbök a memória folyamatos szegmensét képviselik. Ez a hivatkozott listák alapján is eltér a várólistától vagy a veremtől.

Nem numerikus tömbkulcsok

A kulcsok számok, de bármilyen nevük is lehet:

Például a push / pop csak a tömb extrém elemeivel dolgozik, így hihetetlenül gyorsak.

A push csak a végével működik:

A shift / unshift módszerek lassúak, mert újra kell számozniuk az egész tömböt. A splice módszer is megváltoztathatja a számozást:

Feladat az önmegvalósításhoz

Mi lesz az eredmény? Miért?

Mivel a tömbök objektumok, arr.. Valójában hívás egy objektum-módszerhez, például objmódszer:

Részleges tömbök, leírás hosszúsága

Az alábbi példában két elemet adunk az üres gyümölcsökhöz. de a hossza értéke 100 marad:

Ha kicsit töredezett tömb nyomtatására próbálkozik, akkor a böngésző üres elemként adja vissza a hiányzó indexek értékét:

De egy tömb egy kétkulcsos objektum. A hiányzó értékek nem foglalnak helyet.

A ritka tömbök furcsán viselkednek, amikor a tömb módszereit alkalmazzák rájuk. Fogalmuk sincs, hogy az indexeket elhagyják:

Próbálja meg elkerülni a ritka tömböket. Mindenesetre a módszerük nem fog megfelelően működni. Használja helyette az Objektumot.

Eltávolítás egy tömbből

Mint tudjuk, a tömbök objektumok, így törölhetnénk. az érték törlése:

Úgy látja, hogy az érték törölve van, de nem úgy, ahogyan szeretnénk, mert a tömb nem hozzárendelt elemet tartalmaz.

A törlés operátor törli a kulcs-érték párt, és ez minden. Természetesen, mivel a tömb csak hash, a törölt elem helyzete meghatározatlan.

Leggyakrabban el kell távolítanunk az elemet, így nincsenek "lyukak" az indexek között. Van egy másik módszer, amely segít nekünk ebben.

Splice módszer

Eltávolítja a deleteCount elemet. kezdődik az index. majd az elem1 helyére helyezi. elemN.

Nézzünk néhány példát:

Így használhatja a splice-t. törölni egy elemet a tömbből. A tömbelemek számát áthelyezik a rés kitöltésére:

Az alábbi példa bemutatja az elemek cseréjét:

Az összekapcsolási módszer a törölt elemek tömbjét adja vissza:

Ez a módszer negatív indexet is alkalmazhat, amelyet a tömb vége felől számol:

Feladat az önmegvalósításhoz

Az objektum tartalmazza a className tulajdonságot. amely az osztályneveket szóközökkel elválasztja:

Írja le a removeClass függvényt (obj, cls). amely eltávolítja a klasztereket. ha megadják:

Egy kicsit optimalizálja:

A fenti példában a c változó a hurok elején van beállítva, és utolsó indexe i.

Maga a ciklus ellentétes irányú, az i> = 0 feltétel mellett fejeződik be. Ez azért van így, mert i> = 0 ellenőrzés gyorsabb, mint i. Mi meggyorsítja a keresést a c.

A módszer szelete

Elhagyhatja a második argumentumot, hogy az összes elemet egy adott indexből indítsa el:

Az eljárás támogatja a negatív mutatókat, mint a String # szelet.

A fordított módszer

Egy másik hasznos módszer a fordított. Tegyük fel, hogy szeretném megkapni a domain utolsó részét, például "com" -ot a "my.site.com" -ból. Íme, hogyan kell csinálni:

Létrehozhat hosszabb hívásokat, például fordított ()0] [1[5]. a nyelv szintaxisa ezt teszi lehetővé.

Rendezés, rendezési mód (fn)

A sort () metódus tömböt rendez az elemek számának megváltoztatása nélkül:

Futtassa a fenti kódot. Rendelkezést kapsz 1. 15. 2. Ez azért van, mert a módszer mindent egy stringre alakít át, és az alapértelmezett lexikográfiai sorrendet használja.

A módszer intelligensebbé tétele érdekében át kell adnunk egy felhasználó által definiált összehasonlítási függvényt. Két argumentumot kell megtennie, és visszatér 1, 0 vagy -1:

Most minden rendben működik.

Feladat az önmegvalósításhoz

Hozz létre az ageSort (emberek) függvényt az emberek objektumainak rendezéséhez az életkor szerint:

Array # rendezést és egyedi összehasonlítást kell használnia:

Rövidebb változat

Az összehasonlítási funkció rövidebb lehet. Alternatív megoldás:

Működik, mivel nem kell visszatérni 1 / -1 / 0. pozitív vagy negatív számok fognak működni.

új Array ()

Ritkán használják, mert a szögletes zárójelek [] rövidek.

Lehetőség van arra is, hogy az új Array. egyetlen numerikus argumentummal hívott, egy meghatározott hosszúságú tömböt hoz létre definiált elemekkel:

A fenti példában meghatározhatatlan. mert az új Array (szám) üres tömböt hoz létre, amelynek paramétere a számmal egyenlő.

Ez elég váratlan lehet. De ha ismered ezt a funkciót, használhatsz új Array-t (számot). például:

Ez egy optimalizált módja a sztring ismétlésének.

Többdimenziós tömbök

Ez többdimenziós tömbök létrehozására használható:

következtetés

Ennek elégnek kell lennie az esetek 95% -ában. További információ a Mozilla Array Guide-ról.

A "Array" cikk fordítását a Saitostroenie projekt barátságos csapata készítette el az A-tól Z-ig.

Kapcsolódó cikkek