Javascript tömb, szakértői kódolók

Egy tömb értékrendet, azonosítja az index.

Ön is használja a szintaxis új kivitelező. Ezen felül, akkor meg kell nyomtatni több mint 5-9 karakter ( „új” nem kötelező), van egy sokkal súlyosabb probléma a kétértelmű értelemben:

E két meghatározások nagyon hasonló, de nagyon különböző jelentése. Továbbá tegyük fel, hogy valaki meg akarja változtatni a második meghatározás, mert most azt kell meghatározni, csak az egyik eleme, a 8-as számú a tömbben b. Valószínű, hogy ő meg fog változni a következő (és ki a hibás?):

Természetesen ez nem az, amit szükséges. Az egyetlen mód arra, hogy egy tömb szám - használata szó szintaxis (szögletes zárójelek).

Vannak előnye, hogy segítségével a szintaxis new Array?

Milyen típusú adatokat tartalmazhat egy tömb?

Egy tömb tartalmazhat bármilyen tárgy vagy egy elemi típusú. Többféle adat lehet egyszerre egy tömbben.

Hogyan lehet elérni egy tömb elem?

A tömb elemei közösek objektum tulajdonságait, és elérheti őket, valamint a tulajdonságokat. Mivel az ingatlan azonosítók mindig egy karakterlánc, tömbindexként - ugyanaz a húr, nem egy szám. Azonban, ha használja az index rekord (zárójelben) is alkalmazni kell az ingatlan, akkor is lehet használni egy számérték, mivel ez átalakítható egy string tolmács. Hozzáférés tömböt ponton keresztül nem fog működni, mert identefikator tulajdonságok nem kezdődhet számmal. (Sőt, ez a viselkedés származik a szabályok az objektum tulajdonságait, ez nem csak tömbök).

Hogyan végigmegy a tömb?

Általában érdemesebb használni egy normál ciklus:

Ha a tömb elég nagy, akkor lehet, hogy aggódik többletmunkateher elérésekor array.length mindegyik ismétlésnél. Ennek elkerülése érdekében, akkor meg a hossza a tömb előre:

A kifejezés ... benne nem ajánlott végighaladni a tömb, mert akkor is megragad enumerable tulajdonságait a prototípus (lásd. Lent)

Mik a tulajdonságai egy sor egyedi?

A legfontosabb tulajdonsága a tömb - hossza (vonósok és funkciókat is van egy length tulajdonság, de a hossza a tömb

Az ECMA mondja:
Array ingatlan tartozik, hogy az objektum tömb mindig számszerűen nagyobb, mint a neve minden tulajdonsága, amely a tömb indeskom.

Más szóval, ez számítható: (a számérték utolsó index) + 1

A tömbök nem korlátozódnak a hossza a tetején. Akkor adjunk hozzá egy elemet, amelynek indexe nagyobb mint (hossz - 1) és a length tulajdonság szerint változik a fenti definíció. A tömbök maximális hossza, de ez nagyon nagy, így nem is gondolok rá.

A tömbök mindig alulról korlátos nullával. Ha megpróbálja felvenni az érték negatív index, akkor csak írj egy normális tulajdonsága a tárgy (lásd még „asszociatív tömbök” alább)

Meg lehet manipulálni a tartalmát a tömb, frissítése értéke hosszát. Ha umenshaetsya length tulajdonság a tömb, az elemek indexek nagyobb vagy egyenlő, mint az új hossza tömb eltávolítjuk (ez az egyetlen módja annak, hogy távolítsa el az index a tömb - el tudja távolítani az elemet, de csak az érték törlődik, és az index a helyén marad - azaz, a tömb „ritka” = úgy tűnik, lyukak)

Ezzel szemben, ha növeli a tömb hossza ingatlan értéke n, akkor a tömb jelenik n új elemek értéke határozatlan. Tény, hogy semmi sem változott, kivéve a hossza a tömb hossza.

Két további tulajdonságai a pszeudo-tömb: index és bemenet. Ezek a tulajdonságok jelennek meg tömbök által létrehozott reguláris kifejezések segítségével.

Milyen módszereket örökölt Array.prototype?

Oektov Array nyújt számos igen hasznos eszköz nagy részletességgel mérlegelni ECMA5. amelyek többsége lehet, hogy ismeri. A következő tömb módszerek állnak rendelkezésre a legújabb változat a böngészők.

concat felületaktív példányban tömb és hozzáteszi, hogy ez az érveket

csatlakozzon egyesíti a tömb elemeit egy egy string, elválasztva az érvelés

váltás eltávolítja, és visszaadja az első eleme

pop eltávolítja, és visszatér az utolsó elem

unshift hozzáteszi érvek a tömb első

nyomja hozzáteszi érveket, hogy a végén a tömb

fordított fordított sorrendben a tömb elemeinek másolás nélkül

szeleteljük felületaktív példányban része a tömb - az elemek index elejétől a végéig, nem beleértve a végén

splice - eltávolítja ezeket az elemeket egy tömb, helyettük argumentuma

rendezési - tömböt rendez másolás nélkül, adott esetben egy összehasonlító függvényt érvként

toString okok csatlakozzon paraméter nélkül

indexOf visszatér az index az első elem megegyezik a megadott érték, vagy -1, ha nem található

lastIndexOf visszatér az index az utolsó elem megegyezik a megadott érték, vagy -1, ha nem található

Minden igaz értékkel tér vissza, ha az átadott függvény igaz értéket ad vissza minden egyes eleme a tömb

Néhány vozvradaet igaz, ha elfogadják, hogy a függvény igaz értékkel tér vissza legalább egy elem a tömb

foreach használja az átadott függvényt minden egyes eleme a tömb

térkép létrehoz egy új tömböt, amely tartalmazza az eredmények a továbbított függvény minden egyes eleme a tömb

Keresés létrehoz egy új tömb, amely tartalmazza mindazokat az elemeket, amelyek a továbbított függvény visszatérési értéke true

csökkentésére vonatkozik funkciót egyidejűleg a két érték a tömb (balról jobbra), hogy a tömb csökkentjük egyetlen értéket (megjegyzés: csökkenti volt egy másik értéket a korábbi verziók prototype.js)

reduceRight alkalmaz funkciót egyidejűleg a két érték a tömb (jobbról balra), úgy, hogy a tömb csökkentjük egyetlen értéket

Honnan lehet tudni, hogy az objektum típusa Array?

És mi a helyzet a „asszociatív tömbök”?

Tény, hogy ezt a kódot (bár ez nem hibás) helytelen használata az objektum tömb. A tömb nem adunk hozzá bármely elem (array.length értéke 0). Minden tettünk hozzá van rendelve a tulajdonságok hétköznapi tárgy - sőt, létrehoztunk egy hash táblát.

Ennek szemléltetésére, akkor cserélje ki a Array objektum bármely más tárgyat, és ugyanazt az eredményt kapjuk.

Sőt, a teremtés hash az objektum Array potenciálisan veszélyes. Ha valaki bővül Array.prototype felsorolható tulajdonságokat (például, hogy lehet tenni a prototype.js könyvtár), akkor ezek mind szerepelnek a hurok ... a, elpusztítva a logika (vagy legalábbis meg kell használni egy hatékony módszer a hasOwnProperty) .

Készítsen hash az objektum Object és sehol máshol, hiszen Object.prototype megállapodást nem lehet meghosszabbítani.

Lásd még: