V první části jsme si procvičili vytváření polí a podívali se na některé metody, které můžete použít. Poslední, kterou jsme praktikovali, byla metoda splice(). Dnes budeme pokračovat ve zkoumání zbývajících metod dostupných pro pole, abychom dokončili toto téma, abychom jej mohli zavřít a přejít k objektům. Začínáme!
slice()
První metodou, kterou začneme, je slice(). Tato metoda se používá k rozdělení pole extrahováním jeho části. Chce to dva parametry. První je pro počáteční index – pozici první položky, kterou chcete mít v extrahovaném kusu. Druhý parametr říká, na kterém indexu se metoda zastaví. Při použití této metody věnujte pozornost, protože položka na indexu použitá jako druhý parametr (koncová pozice) není zahrnuta v poli výsledků. Když vynecháte druhý index, vrátí se celé pole. K definování druhého parametru můžete také použít metodu „length“.
JavaScript:
var arr1 = [“Universe”, 0.618, “spore”, 3, true, “Kyoto”]; // creating array to work with console.log(arr1.slice(1, 4)); // result - [0.618, “spore”, 3] console.log(arr1.slice(3, 5)); // result – [3, true] console.log(arr1.slice(3, 5)); // result – [3, true] // without second index console.log(arr1.slice(0)); // result - [“Universe”, 0.618, “spore”, 3, true, “Kyoto”] // using .length method for second parameter console.log(arr1.slice(4, arr1.length)); // result – [true, “Kyoto”] console.log(arr1.slice(0, arr1.length)); // result - [“Universe”, 0.618, “spore”, 3, true, “Kyoto”] // when second parameter is lower than first console.log(arr1.slice(3,1)); // result - [] // using same index for both parameters console.log(arr1.slice(1, 1)); // result - [] // create new array with slice var arr2 = arr1.slice(0,1);// result - [“Universe”]
– poznámka:Protože jsme použili stejný index pro počáteční i koncovou pozici, vrátí se prázdné pole – položka na poslední pozici není zahrnuta.
concat()
metoda concat() se používá pro spojování jednotlivých polí. Pokud čtete příspěvek o řetězcích, tuto metodu již znáte. Používá stejnou syntaxi a také funguje stejným způsobem jako v případě řetězců. Chcete-li jej použít, napište název prvního pole následovaný tečkou a concat(). Parametry jsou názvy dalších polí, se kterými chcete spojit první pole. Pole budou spojena v přesném pořadí, v jakém jste to napsali.
JavaScript:
var arr3 = [“Language”, “syntax”, “semantics”]; var arr4 = [60, 75, 1.3]; var arr5 = [“paragraph”, “sentence”, “word”, “letter”]; // creating new array – order: arr3, arr4, arr5 var arr6 = arr3.concat(arr4, arr5); // result - [“Language”, “syntax”, “semantics”, 60, 75, 1.3, “paragraph”, “sentence”, “word”, “letter”] // creating new array – order: arr5, arr4, arr3 var arr6 = arr5.concat(arr4, arr3; // result - [“paragraph”, “sentence”, “word”, “letter”, 60, 75, 1.3, “Language”, “syntax”, “semantics”] // creating new array – order: arr4, arr5, arr3 var arr6 = arr4.concat(arr5, arr3); // result - [60, 75, 1.3, “paragraph”, “sentence”, “word”, “letter”, “Language”, “syntax”, “semantics”] // creating new array – order: arr4, arr3, arr5 var arr6 = arr4.concat(arr3, arr5); // result - [60, 75, 1.3, “Language”, “syntax”, “semantics”, “paragraph”, “sentence”, “word”, “letter”]
toString()
Tato metoda převede jakékoli pole na řetězec. Nepotřebuje žádné parametry, stačí napsat název pole následovaný tečkou a metodou „toString()“. Jednotlivé položky budou odděleny čárkami.
JavaScript:
var arr7 = [“France”, “Czech Republic”, “Australia”, “Denmark”, “Netherlands”]; console.log(arr7.toString()); // result - “France,Czech,Republic,Australia,Denmark, Netherlands” var arr8 = [65323, 169, 179, 230, 48]; console.log(arr8.toString()); // result - “65323,169,179,230,48”
sort() a reverse()
Poslední metody k procvičování jsou sort() a reverse(). sort() seřadí všechny položky v poli v abecedním pořadí. Pokud použijete řazení na poli obsahujícím různé datové typy, priorita je následující:čísla, řetězce, logická hodnota. Není však dobrý nápad třídit metodu sort() na poli obsahujícím pouze čísla kvůli jejímu abecednímu principu řazení. Například 1 je před 2, takže 100 bude před 25. Na druhou stranu revers() jednoduše obrátí pořadí položek uvnitř pole podle jejich původního pořadí. Tato funkce ve výchozím nastavení nepoužívá abecední pořadí ani podobné věci.
JavaScript:
// sorting var arr9 = [“stres”, “les”, “pes”, “ves”]; console.log(arr9.sort()); // result - [“les”, “pes”, “stres”, “ves”] var arr10 = [180, 65, 983, 0, 560]; console.log(arr10.sort()); // result - [0, 180, 560, 65, 983] // different data types var arr11 = [“check”, 8, “club”, 9, false, 518]; console.log(arr11.sort()); // result - [518, 8, 9, “check”, “club”, false] // reverse console.log(arr9.reverse()); // result - [“ves”, “pes”, “les”, “stres”] console.log(arr10.reverse()); // result - [560, 0, 983, 65, 180] console.log(arr11.reverse()); // result - [518, false, 9, “club”, 8, “check”]
Pokročilé třídění
Pokud chcete, můžete výchozí chování sort() upravit pomocí funkce jako parametru. Tímto způsobem jej můžete upravit například tak, aby správně třídil pole čísel. Funkce bude jediným parametrem pro metodu sort(). Vezme dva parametry – x a y – a vrátí -1, 0 a 1. Díky těmto hodnotám vytvoří nové pořadí.
JavaScript:
var arr12 = [0,87, 40, 2, 18, 16, 95, 100]; // use function to sort numbers from lowest to highest arr12 = arr12.sort(function(x, y) {return x – y}); console.log(arr12); // result - [0, 2, 16, 18, 40, 87, 95, 100] // use function to sort numbers from highest to lowest var arr12 = [0,87, 40, 2, 18, 16, 95, 100]; arr12 = arr12.sort(function(x, y) {return y – x}); console.log(arr12); // result - [100, 95, 87, 40, 18, 16, 2, 0]
Shrnutí
Skvělá práce, dámy a pánové! Chcete-li to zavřít… Procvičili jsme zbytek metod včetně slice(), concat(), toString(), sort(), reverse() a pokročilé způsoby řazení položek uvnitř polí. Doufám, že jste si to užili, pobavili a naučili se něco nového. Tím jsou pole za námi a můžeme se ponořit do objektů. AD