Nutnost: Callback JS

Pole (Arrays)

Pole slouží k ukládání více hodnot do jedné proměnné.

Vytvoření pole

let cisla = [1, 2, 3, 4];
let jmena = ["Jan", "Eva", "Petr"];

Přístup k prvkům

Indexování začíná od 0.

let jmena = ["Jan", "Eva", "Petr"];
console.log(jmena[0]); // Jan
console.log(jmena[1]); // Eva

Změna hodnoty

jmena[0] = "Karel";

Délka pole

console.log(jmena.length);

Přidání prvku

Na konec:

jmena.push("Lucie");

Na začátek:

	jmena.unshift("Tomáš");

Odebrání prvku

Z konce:

	jmena.pop();

Ze začátku:

jmena.shift();

Procházení pole (for loop)

for (let i = 0; i < jmena.length; i++) {
  console.log(jmena[i]);
}

Moderní procházení (for…of)

for (let jmeno of jmena) {
  console.log(jmeno);
}

Časté metody

jmena.includes("Jan");   // true / false
jmena.indexOf("Eva");    // index nebo -1

Tvorba mergováním dvou listů

const programmingLanguages = ["JavaScript", "Python", "C++"];
const newList = programmingLanguages.concat("Perl");
 
console.log(newList); // ["JavaScript", "Python", "C++", "Perl"]

Join

const reversedArray = ["o", "l", "l", "e", "h"];
const reversedString = reversedArray.join("");
 
console.log(reversedString); // "olleh"

map() – úprava pole

Autor: brocode https://www.youtube.com/watch?v=xNQH1NbZQ0E Příjmá callback a praktikuje funkci pro každý element, vrací nový array

const num = [1,2,3];
const sqnum.map(square);
function square(element){
	return element*element
}

filter() – filtrování

Autor: Brocode

let num = [1,2,3];
const isEven = (element) => {
	return element%2 === 0;
}
let even = num.filter(isEven);

For Each

Autor: Brocode

let numbers = [1,2,3]
const display = (elements) => {
	console.log(element)
}
numbers.forEach(display)
// 1,2,3

Reduce

Autor Brocode https://www.youtube.com/watch?v=iDWtuWkuj8g

const prices = [1, 2, 3];
 
function sum(acc, ele) {
	// Toto je callback funkce
    return acc + ele;
}
 
// Tady říkáš: "Hej, reduce, vezmi tuhle moji funkci 'sum' a zavolej ji pro každý prvek v poli."
const total = prices.reduce(sum, 0);
const prices = [1, 2, 3]; 
let total = 0; 
for (const price of prices) { 
	total += price; 
} 
console.log(total);

Vlastní metody

Mějme nějakou funkci

let expect = function(val) {
	return // tady jsou metody
};
let expect = function(val) { // <--- TADY JE TA BUBLINA
    return {
		// klíč: hodnota
        }
    };
};
let expect = function(val) {
    return {
        return5: 5,
        consoleme: function(){
	        console.log("me");
        },
        writeme: function(){
	        console.log(val);
        },
        writearray: function(){
	        function display(elements){
				console.log(element);
			}
			numbers.forEach(display);
        }
    };
};