Metody
Na této stránce najdete vysvětlení všech metod týkajících se polí. Pokud byste něco nepochopili, tak jsem pod každou metodu přidal odkaz na MDN, kde se můžete dozvědět více.
Přidávání a odebírání položek
push
Pomocí této metody můžeme na konec pole přidat položku.
parametry:
- položka nebo položky oddělené čárkou
návratová hodnota: velikost pole do kterého byla položka přidána
unshift
Pomocí této metody můžeme na začátek pole přidat položku.
paremetry:
- položka nebo položky oddělené čárkou
návratová hodnota: velikost pole do kterého byla položka přidána
pop
Pomocí této metody můžeme odstranit položku z konce pole.
návratová hodnota: smazaná položka (pokud je pole prázdné, vrátí se undefined)
shift
Pomocí této metody můžeme odstranit položku ze začátku pole.
návratová hodnota: smazaná položka (pokud je pole prázdné, vrátí se undefined)
splice
Tato metoda nám umožňuje v poli přidávat, měnit a odstraňovat položky. Pokud tuto metodu závoláme jen s jedním parametrem, tak se odstraní část pole od předanáho indexu po konec pole. Pokud tuto metodu zavoláme se dvěma parametry tak se v poli odstraní počet položek podle předaného čísla od předaného indexu. A pokud tuto metodu závoláme ještě s dalšími parametry, tak se hodnoty předané v těchto ostatních parametrech vloží na místo odstraněných položek.
paremetry:
- startovní index od kterého chceme začít pole měnit
- počet položek, které chceme z pole odstranit
- hodnota nebo hodnoty oddělé čárkami, které chceme do pole přidat
návratová hodnota: pole odstraněných položek (pokud se neodstraní žádné položky, vrátí se prázdné pole)
Zkopírování pole nebo části pole
Pokud vytvořené pole přiřadíme jiné proměnné pomocí znaku "=", tak se pole nezkopíruje. Namísto toho bude tato proměnná odkazovat na místo v paměti, kde je pole vytvořené. Takže budeme mít dvě proměnné odkazující na jedno pole. Pokud chceme pole zkopírovat, tak musíme použít spread operátor nebo metodu slice.
slice
Pomocí této metody můžeme zkopírovat celé pole nebo jeho část. Pokud nepředáme žádné parametry, pole se zkopíruje celé. Pokud předáme jen jeden parametr, tak se zkopíruje část pole od předaného indexu po konec pole. Pokud předáme dva parametry, tak se pole zkopíruje od indexu předaného v prvním parametr po index předaného v druhém parametru.
parametry:
- startovní index
- konečný index
návratová hodnota: zkopírované pole
Spojení polí
concat
Pomocí této metody můžeme spojit dvě nebo více polí dohromady.
parametry:
- pole nebo více polí oddělených čárkou
návratová hodnota: sloučené pole
const druhePole = [4, 5, 6];
const sloucenaPole = prvniPole.concat(druhePole); // [1, 2, 3, 4, 5, 6]
Vytvoření řetězce z pole
toString
Pomocí této metody můžeme vytvořit z pole řetězec.
návratová hodnota: řetězec
let retezec = pole.toString(); // "1,2,3"
toLocaleString
Pomocí této metody můžeme vytvořit z pole řetězec. Položky v poli se převádějí pomocí jejich toLocaleString metody.
- [volitelné] locales
- [volitelné] options
návratová hodnota: řetězec
const localeString = pole.toLocaleString('en', { timeZone: 'UTC' });
console.log(localeString); // "1,a,12/21/1997, 2:12:00 PM"
join
Pomocí této metody můžeme vytvořit z pole řetězec. Pokud chceme tak si můžeme určit jakým znakem se jednotlivé položky pole v řetězci oddělí.
parametry:
- řetězec kterým se položky v poli oddělí (pokud parametr nepředáme, položky se oddělí čárkou)
návratová hodnota: řetězec
let retezec = pole.join("-"); // "1-2-3"
Nastavení všech hodnot pole nebo jeho části na stejnou hodnotu
fill
Pomocí této metody můžeme všem položkám v poli nebo v části pole nastavit stejnou hodnotu. Pokud předáme jen jeden parametr, tak se předaná hodnota nastaví všem položkám v poli. Pokud předáme všechny parametry, tak se předaná hodnota nastaví jen části pole.
parametry:
- hodnota, která se má nastavit
- startovní index
- konečný index
návratová hodnota:
Zjištění jestli pole obsahuje hodnotu
includes
Pomocí této metody můžeme zjistit jestli pole obsahuje nějakou hodnotu.
parametry:
- hodnota kterou chceme zjistit jestli ji pole obsahuje
návratová hodnota: true pokud pole předanou hodnotu obsahuje a false pokud ji neobsahuje
console.log(zvirata.includes("slon")); // true
indexOf
Pomocí této metody můžeme zjistit index předané hodnoty v poli. Metoda vrací index prvního výskytu hodnoty v poli. Pokud se hodnota nenajde, tak se vrátí hodnota -1. Pokud chceme, tak můžeme přidat ještě jeden parametr, který bude určovat od jakého indexu se začne hodnota hledat.
parametry:
- hodnota u které chceme zjistit její index v poli
- index od kterého se začne hledat
návratová hodnota: index prvního výskytu předané hodnoty v poli
console.log(zvirata.indexOf("slon")); // 1
lastIndexOf
Pomocí této metody můžeme zjistit index předané hodnoty v poli. Narozdíl od metody indexOf ale tato metoda hledá předanou hodnotu od konce.
parametry:
- hodnota u které chceme zjistit její index v poli
- index od kterého se začne hledat
návratová hodnota: index posledního výskytu předané hodnoty v poli
console.log(zvirata.lastIndexOf("slon")); // 3
Obrácení pole
reverse
Pomocí této metody můžeme vytvořit obrácené pole.
návratová hodnota: obrácené pole
const obracenePole = pole.reverse(); // ["pes", "leopard", "vlk", "medved"]
Seřazení pole
sort
Pomocí této metody můžeme pole seřadit. Seřadí se pole na kterém tuto metodu zavoláme, nové se nevytváří. Jako parametr můžeme funkci předat porovnávací funkci podle které se položky v poli seřadí. Metoda touto funkcí všechny položky projede a pole se seřadí. Pokud ale žádnou porovnávací funkci nepředáme, tak se všechny položky v poli převedou na řetězce a seřadí se podle UTF-16 kódů.
parametry:
- porovnávací funkce - Funkce musí jako parametr přijímat dva parametry, které představují porovnávané položky v poli. Pokud funkce vrací číslo větší než 0, tak se položka předaná v druhém parametru přesune před položku předanou v prvním parametru, pokud menší než 0 tak se položky nechají na svých místech, pokud 0 tak se položky rovnají.
návratová hodnota: seřazené pole
pole.sort((a, b) => {
return b - a;
}
// pole je takto: seřazené: [5, 4, 3, 2, 1]
Filtrování pole
filter
Pomocí této metody můžeme pole vyfiltrovat. Jako parametr předáváme funkci, ve které každou položku v poli můžeme testovat a určovat tak jestli se ve vyfiltrovaném poli bude vyskytovat.
parametry:
- testovací funkce - Tato funkce může přijímat tři parametry. První parametr představuje položku v poli, druhý index položky a třetí pole na kterém se filter funkce volá. Zbylé dva parametry do funkce přidávat nemusíme pokud je nepotřebujeme. Pokud funkce vrátí true, tak položka prošla testem a pokud false tak položka neprošla testem.
- [volitelné] hodnota, která se použije jako this, když se bude předaná funkce volat
návratová hodnota: vyfiltrované pole
// vyfiltrování slov, která jsou delší jak 4 znaky
const vysledek = slova.filter((slovo) => {
return slovo.length > 4;
});
// pole vysledek: ["jídlo", "autobus", "skříň"]
Vytvoření pole aplikováním funkce na položky v poli
map
Tato metoda vytvoří nové pole, které bude obsahovat výsledky předané funkce volané pro každou položku.
parametry:
- funkce - Tato funkce může přijímat tři parametry. První parametr představuje položku v poli, druhý index položky a třetí pole na kterém se map funkce volá. Zbylé dva parametry do funkce přidávat nemusíme pokud je nepotřebujeme. Tato funkce se zavolá pro každou položku v poli a hodnota, která funkce vrátí se uloží do pole, které funkce map vytvoří.
- [volitelné] hodnota, která se použije jako this, když se bude předaná funkce volat
návratová hodnota: pole
const vysledek = pole.map((polozka) => {
return polozka * 2;
});
// pole vysledek: [4, 6, 8, 16, 10]
Provádění výpočtu (nebo něčeho jiného) se všemi položkami pole
reduce
Tato metoda nám umožňuje provádět nějaký výpočet nebo jinou operaci se všemi položkami v poli.
parametry:
- funkce - Tato funkce musí přijímat dva parametry. Prvním je accumulator (hodnota, která byla vrácena když se funkce volala na předchozí položku nebo počáteční hodnota) a druhým je položka pro kterou se funkce volá. Dále funkce může přijímat ještě dva další volitelné parametry kterými jsou index položky a pole na kterém se funkce reduce volá. Hodnota, kterou funkce vrátí se použije jako accumulator při volání této funkce na další položku v poli.
- [volitelné] Počáteční hodnota accumulatoru. Volání funkce reduce na prázdné pole bez počáteční hodnoty vyhodí chybu.
návratová hodnota: hodnota, kterou funkce reduce vypočítala / určila
const soucetVsechPolozek = pole.reduce((accumulator, polozka) => {
return accumulator + polozka;
});
console.log("součet:" + soucetVsechPolozek); // 10
reduceRight
Tato metoda je stejná jako metoda reduce s tím rozdílem že začíná od konce pole.
parametry:
- funkce - Tato funkce musí přijímat dva parametry. Prvním je accumulator (hodnota, která byla vrácena když se funkce volala na předchozí položku nebo počáteční hodnota) a druhým je položka pro kterou se funkce volá. Dále funkce může přijímat ještě dva další volitelné parametry kterými jsou index položky a pole na kterém se funkce reduce volá. Hodnota, kterou funkce vrátí se použije jako accumulator při volání této funkce na další položku v poli.
- [volitelné] Počáteční hodnota accumulatoru. Volání funkce reduce na prázdné pole bez počáteční hodnoty vyhodí chybu.
návratová hodnota: hodnota, kterou funkce reduceRight vypočítala / určila
const soucetVsechPolozek = pole.reduceRight((accumulator, polozka) => {
return accumulator + polozka;
});
console.log("součet:" + soucetVsechPolozek); // 10
Aplikování funkce na všechny položky v poli
forEach
Pomocí této metody můžeme spustit předanou funkci pro každou položku v poli.
parametry:
- Funkce, která se provede pro každou položku v poli. Tato funkce může přijímat tři parametry. První parametr představuje položku v poli, druhý index položky a třetí pole na kterém se funkce find volá. Zbylé dva parametry do funkce přidávat nemusíme pokud je nepotřebujeme.
- [volitelné] hodnota, která se použije jako this, když se bude předaná funkce volat
pole.forEach((polozka) => {
console.log(polozka);
});
Hledání položky v poli
find
Pomocí této metody můžeme v poli najít položku pomocí předané funkce.
parametry:
- funkce - Tato funkce může přijímat tři parametry. První parametr představuje položku v poli, druhý index položky a třetí pole na kterém se funkce find volá. Zbylé dva parametry do funkce přidávat nemusíme pokud je nepotřebujeme. Pokud funkce pro nějakou položku v poli vrátí true, tak se položka našla a funkce find ji vrátí.
- [volitelné] hodnota, která se použije jako this, když se bude předaná funkce volat
návratová hodnota: položka, která se našla
let vyhledanaPolozka = pole.find((polozka) => {
return polozka > 40;
});
// vyhledaná položka je číslo 48
findIndex
Pomocí této metody můžeme v poli najít položku pomocí předané funkce a získat její index.
parametry:
- funkce - Tato funkce může přijímat tři parametry. První parametr představuje položku v poli, druhý index položky a třetí pole na kterém se funkce find volá. Zbylé dva parametry do funkce přidávat nemusíme pokud je nepotřebujeme. Pokud funkce pro nějakou položku v poli vrátí true, tak se položka našla a funkce findIndex vrátí její index.
- [volitelné] hodnota, která se použije jako this, když se bude předaná funkce volat
návratová hodnota: index položky, která se našla (pokud se nenajde žádná položka, tak se vrátí -1)
let indexVyhledanePolozky = pole.findIndex((polozka) => {
return polozka > 40;
});
// index vyhledané polozky je 3
Zjištění jestli předaná podmínka platí alespoň pro jednu položku v poli
some
Pomocí této metody můžeme zjistit jestli námi předaná podmínka platí alespoň pro jednu položku v poli.
parametry:
- funkce s podmínkou - Tato funkce může přijímat tři parametry. První parametr představuje položku v poli, druhý index položky a třetí pole na kterém se funkce some volá. Zbylé dva parametry do funkce přidávat nemusíme pokud je nepotřebujeme. Funkce slouží pro otestování každé položky v poli.
- [volitelné] hodnota, která se použije jako this, když se bude předaná funkce volat
návratová hodnota: Pokud předaná funkce alespoň pro jednu položku vrátila true, tak se vrátí true, jinak se vrátí false.
// zjištění jestli pole obsahuje alespoň jedno sudé číslo
let obsahujeSudaCisla = pole.some((cislo) => {
return cislo % 2 === 0;
});
Zjištění jestli předaná podmínka platí pro všechny položky v poli
every
Pomocí této metody můžeme zjistit jestli námi předaná podmínka platí pro všechny položky v poli.
parametry:
- funkce s podmínkou - Tato funkce může přijímat tři parametry. První parametr představuje položku v poli, druhý index položky a třetí pole na kterém se funkce every volá. Zbylé dva parametry do funkce přidávat nemusíme pokud je nepotřebujeme. Funkce slouží pro otestování každé položky v poli.
- [volitelné] hodnota, která se použije jako this, když se bude předaná funkce volat
návratová hodnota: Pokud předaná funkce vrátila pro všechny položky v poli true, tak se vrátí true, jinak se vrátí false.
// zjištění jestli pole obsahuje jen sudá čísla
let obsahujeJenSudaCisla = pole.every((cislo) => {
return cislo % 2 === 0;
});
Zkopírování části pole do jiného místa pole
copyWithin
Pomocí této metody můžeme zkopírovat část pole a umístit ji na jiné místo v poli.
parametry:
- Index, který představuje kam se část pole zkopíruje. Pokud předáme záporné číslo, tak se místo určí od konce.
- [volitelné] Index, který představuje start části pole, kterou chceme zkopírovat. Pokud předáme záporné číslo, tak se start nastaví od konce. (Pokud tento parametr nepředáme, tak se start nastaví na index 0)
- [volitelné] Index, který představuje konec části pole, kterou chceme zkopírovat. Pokud předáme záporné číslo, tak se konec nastaví od konce. (Pokud tento parametr nepředáme, tak se konec nastaví na konec pole)
návratová hodnota: pole (operace se ale provádí na poli na kterém se metoda copyWithin volá)
Vytvoření array iterator objektu
entries
Pomocí této metody můžeme vytvořit array iterator objekt, který bude obsahovat klíče a hodnoty všech položek pole.
návratová hodnota: array iterator objekt
const iterator = pole.entries();
console.log(iterator.next().value); // [0, 4]
console.log(iterator.next().value); // [1, 6]
keys
Pomocí této metody můžeme vytvořit array iterator objekt, který bude obsahovat klíče pro všechny indexy pole.
návratová hodnota: array iterator objekt
const iterator = pole.keys();
for (let key of iterator) { // postupně vypíše 0, 1, 2, 3, 4 (indexy)
console.log(key);
}
values
Pomocí této metody můžeme vytvořit array iterator objekt, který bude obsahovat hodnoty všech položek pole.
návratová hodnota: array iterator objekt
const iterator = pole.values();
for (let value of iterator) { // postupně vypíše 4, 6, 1, 3, 5
console.log(value);
}
Zjištění zda se jedná o pole
isArray
Pomocí statické metody isArray můžeme zjistit zda se jedná o pole nebo ne.
parametry:
- hodnota na kterou se chceme zeptat
návratová hodnota: true pokud se jedná o pole a false pokud se nejedná o pole
Array.isArray(23); // false
Array.isArray(true); // false
Převedení na pole
from
Pomocí statické metody from můžeme převést array-like nebo iterovatelný objekt na pole. Díky této metodě můžeme například převést HTMLCollection na pole.
parametry:
- array-like nebo iterovatelný objekt
návratová hodnota: pole
const pole = Array.from(document.getElementsByTagName("li"));
Vytvoření pole podle předaných hodnot
of
Pomocí této statické metody můžeme vytvořit pole s hodnotami, které předáme jako parametry. Rozdíl mezi touto metodou a Array konstruktorem je ten, že pokud této metodě předáme jen jeden celočíselný parametr, tak se vytvoří pole s jednou hodnotou a ne pole o velikosti předaného čísla.
parametry:
- hodnoty, které bude pole obsahovat
návratová hodnota: pole
let prazdnePole = new Array(4); // prázdné pole o velikosti 4
Získání položky podle indexu
at
Pomocí této metody můžeme získat položku v poli podle předaného indexu. Narozdíl od získávání položky přes hranaté závorky můžeme v této metodě použít i záporná čísla. Pokud záporné číslo použijeme, tak se položka vybere od konce. Pokud tedy například použijeme číslo -1, vrátí se poslední položka v poli.
Tato metoda je v době tvorby těchto stránek poměrně nová, takže ji ještě nemusí podporovat tolik prohlížečů. To se ale již mohlo změnit.
parametry:
- index nebo pozice od konce při předání záporného čísla
návratová hodnota: položka pole
let hodnota = pole.at(-1); // 9