JavaScript 101-#10 – Pole Pt2

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