[Pole v JS]

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

pole.push();
MDN - push

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

pole.unshift();
MDN - unshift

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)

pole.pop();
MDN - pop

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)

pole.shift();
MDN - shift

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)

pole.splice(3);
pole.splice(0, );
pole.splice(2, , );
MDN - splice

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

const pole = [3, 5, 1].slice(, );
MDN - slice

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 prvniPole = [123];
const druhePole = [456];

const sloucenaPole = prvniPole.concat(druhePole)// [1, 2, 3, 4, 5, 6]
MDN - concat

Vytvoření řetězce z pole

toString

Pomocí této metody můžeme vytvořit z pole řetězec.

návratová hodnota: řetězec

const pole = [123];

let retezec = pole.toString()// "1,2,3"
MDN - toString

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 pole = [1'a'new Date("21 Dec 1997 14:12:00 UTC")];

const localeString = pole.toLocaleString('en'{ timeZone'UTC' });

console.log(localeString)// "1,a,12/21/1997, 2:12:00 PM"
MDN - toLocaleString

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

const pole = [123];

let retezec = pole.join("-")// "1-2-3"
MDN - join

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:

pole.fill(, , );
MDN - fill

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

const zvirata = ["medved""slon""zebra"];

console.log(zvirata.includes("slon"))// true
MDN - includes

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

const zvirata = ["medved""slon""zebra"];

console.log(zvirata.indexOf("slon"))// 1
MDN - indexOf

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

const zvirata = ["medved""slon""zebra""slon"];

console.log(zvirata.lastIndexOf("slon"))// 3
MDN - lastIndexOf

Obrácení pole

reverse

Pomocí této metody můžeme vytvořit obrácené pole.

návratová hodnota: obrácené pole

const pole = ["medved""vlk""leopard""pes"];

const obracenePole = pole.reverse()// ["pes", "leopard", "vlk", "medved"]
MDN - reverse

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

const pole [21534];

pole.sort((ab=> {
    return b - a;
}

// pole je takto: seřazené: [5, 4, 3, 2, 1]
MDN - sort

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

const slova = ["auto""okno""jídlo""autobus""skříň"];

// vyfiltrování slov, která jsou delší jak 4 znaky
const vysledek = slova.filter((slovo) => {
    return slovo.length > 4;
});
// pole vysledek: ["jídlo", "autobus", "skříň"]
MDN - filter

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 pole = [23485];

const vysledek = pole.map((polozka) => {
    return polozka * 2;
});
// pole vysledek: [4, 6, 8, 16, 10]
MDN - map

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 pole = [1234];

const soucetVsechPolozek = pole.reduce((accumulatorpolozka) => {
    return accumulator + polozka;
});

console.log("součet:" + soucetVsechPolozek)// 10
MDN - reduce

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 pole = [1234];

const soucetVsechPolozek = pole.reduceRight((accumulatorpolozka) => {
    return accumulator + polozka;
});

console.log("součet:" + soucetVsechPolozek)// 10
MDN - reduceRight

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
const pole [46135];

pole.forEach((polozka) => {
    console.log(polozka);
});
MDN - forEach

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

const pole [122533489];

let vyhledanaPolozka = pole.find((polozka) => {
    return polozka > 40;
});

// vyhledaná položka je číslo 48
MDN - find

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)

const pole [122533489];

let indexVyhledanePolozky = pole.findIndex((polozka) => {
    return polozka > 40;
});

// index vyhledané polozky je 3
MDN - findIndex

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.

const pole [12345];

// zjištění jestli pole obsahuje alespoň jedno sudé číslo
let obsahujeSudaCisla = pole.some((cislo) => {
    return cislo % 2 === 0;
});
MDN - some

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.

const pole [12345];

// zjištění jestli pole obsahuje jen sudá čísla
let obsahujeJenSudaCisla = pole.every((cislo) => {
    return cislo % 2 === 0;
});
MDN - every

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á)

pole.copyWithin(, , );
MDN - copyWithin

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 pole [46135];

const iterator = pole.entries();

console.log(iterator.next().value)// [0, 4]
console.log(iterator.next().value)// [1, 6]
MDN - entries

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 pole [46135];

const iterator = pole.keys();

for (let key of iterator) { // postupně vypíše 0, 1, 2, 3, 4 (indexy)
    console.log(key);
}
MDN - keys

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 pole [46135];

const iterator = pole.values();

for (let value of iterator) { // postupně vypíše 4, 6, 1, 3, 5
    console.log(value);
}
MDN - values

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([152])// true
Array.isArray(23)// false
Array.isArray(true)// false
MDN - isArray

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

// převedení HTMLCollection na pole
const pole = Array.from(document.getElementsByTagName("li"));
MDN - from

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 pole = Array.of(4)// pole: [4]
let prazdnePole = new Array(4)// prázdné pole o velikosti 4
MDN - of

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

const pole [122533489];

let hodnota = pole.at(-1)// 9
MDN - at