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
- Hozzon létre egy sor tömböt a "Jazz", "Blues" elemekkel;
- Adja hozzá a "Rock'n'Roll" értékét;
- 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;
- 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.