3 věci, které nevíte o polích JavaScriptu
Pole jsou široce používanou funkcí programovacích jazyků; oni jsou speciální proměnné které lze použít k uložení více hodnot najednou. Nicméně, pokud jde o JavaScript, tak snadné, jak se naučit, je vždy více prozkoumat.
V tomto příspěvku se podíváme na tři méně známé, ale důležité funkce JavaScriptových polí, o kterých jste možná ještě nevěděli.
1. Přidání uživatelských vlastností do polí
Pokud byste měli na internetu hledat důkladnou definici matic JavaScriptu, zjistíte, že téměř každý zdroj bez selhání bude seznam pole jako to, co je opravdu je, objekt.
Ve skutečnosti, téměř vše, co se zabýváme v JavaScriptu bude ukázat se jako objekt. V JavaScriptu existují dva druhy datových typů, primitiv a objekty, ale primitivy jsou vždy zabaleny uvnitř objektů.
Pole, funkce, datum atd. Jsou předdefinované objekty JavaScriptu které mají zabudované metody, vlastnosti a vlastní standardizovanou syntaxi.
Pole JavaScript mohou mít tři různé typy vlastností:
- Indexy pole jsou také vlastnosti
- Vestavěné vlastnosti
- Vlastní vlastnosti můžete přidat sami
První dvě jsou známější, můžete je používat každý den, ale rychle je uvidíme, než skočíme do toho, jak můžete přidat vlastní vlastnost do pole.
Indexy jako vlastnosti
Pole JavaScript používají pole syntaxe hranaté závorky, jako var ary = ["pomeranč", "jablko", "liči");
.
Indexy prvků pole jsou v podstatě vlastnosti Kde názvy vlastností jsou vždy nezáporná celá čísla.
pár indexových prvků pole je podobné pár klíč – hodnota objektu.
Indexy jsou jedinečnou vlastností objektu Array a na rozdíl od jiných vestavěných vlastností mohou být nastavit pouze se syntaxí závorek, jako ary [3] = "broskev";
.
Vestavěné vlastnosti
Pole mají také vestavěné vlastnosti, jako array.length
. délka
vlastnictví nese celočíselnou hodnotu označuje délku pole.
Obecně lze zabudované vlastnosti často nalézt v předdefinovaných objektech JavaScriptu, jako jsou pole. Spolu s vestavěnými metodami pomáhají přizpůsobit obecné objekty tak, aby byly objekty vhodné pro různé potřeby.
K vestavěným vlastnostem lze přistupovat buď pomocí object.key
nebo objekt ["key"]
syntax. Můžete také psát ary ["length"]
pro přístup k délce pole.
Vytvořit vlastní vlastnosti pro objekt Array
Promluvme si o tom přidávání vlastních vlastností do polí. Pole jsou předdefinované objekty, které ukládají různé typy hodnot na různých indexech.
Obvykle není třeba přidávat vlastní vlastnosti do pole; to je jeden z důvodů, proč začátečníci nejsou obvykle učil o této funkci. Ve skutečnosti, pokud chcete zacházet s maticí jako s normálním objektem přidáním párů klíč-hodnota, můžete také používat pro svůj účel normální objekt. Ale to neznamená, že tam nejsou speciální případy kde můžete využít skutečnosti, že pole je objekt, přidáním jedné nebo více vlastních vlastností.
Můžete například přidat vlastní vlastnost do pole, které identifikuje "druh" nebo "třídu" jeho prvků, stejně jako v příkladu níže.
var ary = ["pomeranč", "jablko", "liči"); ary.itemClass = "fruits"; console.log (ary + "jsou" + ary.itemClass); "pomeranč, jablko, liči jsou ovoce"
Všimněte si, že vlastní vlastnost, kterou přidáte do pole, je enumable, to znamená, že bude vyzvednut smyčkami jako pro… v
prohlášení.
2. Projděte prvky pole
Pravděpodobně říkáte, že to už vím, což je s největší pravděpodobností pravdivé, už víte, jak projít prvky pole. Ale je také pravda, že říkat "smyčka přes prvky pole" je trochu abstraktní, protože to, co jsme vlastně smyčky jsou indexy pole.
Protože maticové indexy jsou tvořeny pouze nezáporná celá čísla, iterujeme celočíselnou hodnotu typicky začínající od nuly a končící na celé délce pole, pak použijeme tuto iterovanou hodnotu pro přístup k prvku pole v daném indexu.
Nicméně, protože ECMAScript6, tam je cesta k přímo smyčkou přes hodnoty pole bez obav s indexy, a to lze provést pomocí pro… z
smyčka.
V poli pro… z
smyčka bude procházet prvky pole v pořadí indexů, jinými slovy se bude starat o iteraci indexů a získávání existující hodnota pole v daném indexu. Tato smyčka je ideální, pokud chcete pouze projít všemi prvky pole a pracovat s nimi.
var ary = ["pomeranč", "jablko", "liči"); pro (nechte položku ary) console.log (item); // "oranžová", "jablko", "liči"
Pro srovnání s pravidelným pro
smyčky, dostaneme indexy namísto hodnot jako výstup.
var ary = ["pomeranč", "jablko", "liči"); pro (položka var = 0; položka < ary.length; item++) console.log(item); // 0, 1, 2
3. Počet prvků není jeho délka
Obvykle, když mluvíme o délka pole, Myslíme si, že je to buď počet hodnot, které pole drží, nebo délka, kterou jsme matici zadali ručně. Ve skutečnosti však závisí délka pole na největší existující index uvnitř.
Délka je a velmi flexibilní majetek. Ať už jste již předem nastavili délku pole, nebo ne, pokud přidáváte hodnoty do pole, jeho délka stále roste.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6
Ve výše uvedeném příkladu můžete vidět, že jsem udělil matici pouze jednu hodnotu na indexu 5 a délka se změní na 6. Nyní, pokud si myslíte, že přidáním hodnoty na index 5 pole vytvořilo indexy 0 až 4 automaticky , pak Váš předpoklad je nesprávný. Opravdu žádné existující indexy od 0 do 4 v tomto poli. Toto můžete zkontrolovat pomocí v
operátor.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 console.log (0 v ary); // Nepravdivé
Pole ary
je to, čemu říkáme "řídké" pole, pole, kde indexy nejsou neustále vytvářeny, a mezery. Opakem "řídkého" pole je "husté" pole kde indexy existují nepřetržitě v poli a počet prvků je stejný jako počet délka
.
délka
vlastnost je také schopna zkrácení pole, Ujistěte se, že nejvyšší index přítomný v poli je vždy méně než on sám, tak jako délka
je ve výchozím nastavení vždy číselně větší než nejvyšší index.
V níže uvedeném příkladu můžete vidět, jak ztratíme prvek na indexu 5 snížením hodnoty délka
z ary
pole.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 ary.length = 2; console.log (ary.length); // 2 console.log (ary [5]); // undefined
Další čtení
- 10 JavaScript termínů, které byste měli znát
- 4 ne-tak-obyčejné, ale užitečné Javascript prohlášení byste měli vědět
- Optimalizace kódu pomocí JS Hint - nástroj pro linuxové Javascript