Pole (anglicky "array") je datová struktura, které umožňují ukládat více hodnot v jedné proměnné. Pole jsou velmi užitečné při práci s kolekcemi dat a jsou podporovány většinou moderních programovacích jazyků.
Pole je v JS implementováno jako objekt. To si můžete snadno ověřit v konzoli zadáním příkazu:
typeof [] === 'object'
Oproti nově vytvořenému objektu má pole navíc metody (pole.length, pole.push, array.pop, …) protože dědí z Array prototype.
Vytvoření nového pole
Nejsnažším způsobem, jakým můžeme vytvářet pole je pomocí hranatých závorek "[]". Například:
const pole = [];
funkce konstruktoru JavaScriptu
Dalším způsobem je, jako u mnoha objektů, můžeme u pole použít konstruktor Array a pomocí i klíčové slovo new
vytvořit novou instanci.
Použití konstruktoru může být méně efektivní než použití literální syntaxe [].
var pole = new Array();
Pole s jednotlivými hodnotami jsou oddělené čárkou:
let numbers = [1, 2, 3, 4, 5];
let names = ["Alice", "Bob", "Charlie", "Dave"];
Pole mohou obsahovat hodnoty různého datového typu, ale obvykle se ukládají hodnoty stejného typu. Například pole s čísly nebo pole se řetězci.
Přístup k prvkům pole
Pole v JavaScriptu se indexuje od 0.
Běžně přistupujeme k jednotlivým prvkům pole pomocí jejich indexu přes hranaté závorky []
.
Závorky používáme také u objektů, kde k hodnotě nelze přistoupit přes tečku.
Přes tu přistupujeme ve většině připadu, když pojmenujeme členskou proměnnou objektu validním jménem pro proměnnou, například čislo.
První prvek pole "numbers" můžeme získat pomocí numbers[0]
.
Můžeme, ale jednotlivé prvky pole získat přes destructuring.
Chcete-li změnit hodnotu položky pole:
names[2] = "Angie";
Používáme notaci hranatých závorek k nastavení nové hodnoty pro třetí položku v poli, která se změnila z „Charlie“ na „Angie“.
Přidání prvků
Můžeme také přidávat nové prvky do pole pomocí metody "push()" nebo měnit hodnoty již existujících prvků pomocí přiřazení nové hodnoty.
numbers.push(6);
numbers[2] = 7;
Délka pole
Metoda "length" nám umožní získat délku pole
console.log(numbers.length); // 5
Zajímavé je, že můžete také předefinovat velikost pole:
numbers.length = 3;
console.log(numbers); // [1, 2, 3]
Jak je ukázáno výše, nastavení délky na „3“ vedlo k odstranění posledních dvou položek.
Naopak položky můžete přidávat pomocí vlastnosti length:
numbers.length = 7;
console.log(numbers);
console.log(numbers); // [1, 2, 3, undefined × 5]
To je sice možné, ale má to omezenou použitelnost, protože dvě nové hodnoty jsou "undefined", i když délka je nyní 7 místo 5.