Поиск в массиве
Есть ли имя в списке гостей? На каком месте в очереди стоит человек? На такие вопросы отвечают два метода.
Метод includes() выясняет, содержит ли массив значение. Он возвращает true, если содержит, и false, если нет:
const guests = ["Анна", "Тимур", "Лиза"];
console.log(guests.includes("Тимур"));
console.log(guests.includes("Павел"));Вывод:
true
falseЛогическое значение — именно то, что нужно условию, поэтому includes() чаще всего используют вместе с if:
const guests = ["Анна", "Тимур", "Лиза"];
const visitor = "Тимур";
if (guests.includes(visitor)) {
console.log("Проходите!");
} else {
console.log("Извините, вас нет в списке.");
}Вывод:
Проходите!Метод indexOf() показывает, где находится значение: он возвращает его индекс. Если значения в массиве нет, он возвращает -1. Почему -1? Потому что индексы начинаются с 0, и -1 не может быть настоящим индексом:
const queue = ["Анна", "Тимур", "Лиза"];
console.log(queue.indexOf("Лиза"));
console.log(queue.indexOf("Павел"));Вывод:
2
-1Значит, условие queue.indexOf("Павел") === -1 означает «Павла нет в очереди». Но для простого вопроса с ответом «да» или «нет» includes() читается лучше.
Оба метода сравнивают точно, как ===. guests.includes("тимур") вернёт false, потому что "тимур" со строчной буквы — это не тот же текст, что "Тимур".
Задание
- 1
Напишите инструкцию
ifс условиемguests.includes(visitor), которая выводитПроходите!, когда условие истинно. Лиза есть в списке, поэтому программа выведетПроходите!. - 2
Добавьте ветку
else, которая выводитИзвините, вас нет в списке.Затем замените значениеvisitorна"Павел"(в строкеconst visitor = "Лиза";). Павла в списке нет, так что теперь программа должна вывестиИзвините, вас нет в списке. - 3
Под инструкцией
ifвыведите индекс"Макс"с помощьюconsole.log(guests.indexOf("Макс"));, а затем таким же способом индексvisitor. Консоль должна показать3и-1.