Hledání v poli
Je jméno na seznamu hostů? Kde ve frontě někdo stojí? Na takové otázky odpovídají dvě metody.
Metoda includes() (anglicky „obsahuje“) zjistí, jestli pole obsahuje danou hodnotu. Vrátí true, pokud ano, a false, pokud ne:
const hoste = ["Anna", "Tomáš", "Lucie"];
console.log(hoste.includes("Tomáš"));
console.log(hoste.includes("Pavel"));Program vypíše:
true
falseBooleovská hodnota je přesně to, co potřebuje podmínka, a proto se includes() nejčastěji používá s if:
const hoste = ["Anna", "Tomáš", "Lucie"];
const navstevnik = "Tomáš";
if (hoste.includes(navstevnik)) {
console.log("Pojďte dál!");
} else {
console.log("Bohužel nejste na seznamu.");
}Program vypíše:
Pojďte dál!Metoda indexOf() (z anglického „index of“, tedy „index něčeho“) zjistí, kde v poli hodnota je: vrátí její index. Když hodnota v poli není, vrátí -1. Proč zrovna -1? Protože indexy začínají od 0, nemůže být -1 nikdy skutečný index:
const fronta = ["Anna", "Tomáš", "Lucie"];
console.log(fronta.indexOf("Lucie"));
console.log(fronta.indexOf("Pavel"));Program vypíše:
2
-1Podmínka fronta.indexOf("Pavel") === -1 tedy znamená „Pavel není ve frontě“. Na jednoduchou otázku ano, nebo ne se ale lépe hodí includes().
Obě metody porovnávají přesně, stejně jako ===. hoste.includes("tomáš") vrátí false, protože "tomáš" s malým t není stejný text jako "Tomáš".
Jak psát:
Pokyny
Napište příkaz if s podmínkou hoste.includes(navstevnik), který vypíše Pojďte dál!, když je podmínka pravdivá. Lucie na seznamu je, takže program vypíše Pojďte dál!.
Přidejte větev else, která vypíše Bohužel nejste na seznamu. Potom změňte hodnotu navstevnik na "Pavel" (na řádku const navstevnik = "Lucie";). Pavel na seznamu není, takže by teď program měl vypsat Bohužel nejste na seznamu.
Pod příkazem if vypište index hosta "Marek" pomocí console.log(hoste.indexOf("Marek")); a potom stejným způsobem index hodnoty navstevnik. V konzoli by se mělo objevit 3 a -1.
Začněte programovat zdarma
8/11