Эффективный поиск по массивам при помощи методов includes и indexOf

Эффективный поиск по массивам при помощи методов includes и indexOf

От автора: поиск по массивам всегда предполагал написание сложного цикла, который проверял каждую ячейку на равенство переданному значению. В современном JavaScript есть два более эффективных способа: первый появился в JS в 2015 году, второй немного старше.

Метод includes

Начнем с самого молодого. Если просто, includes возвращает true, если переданное значение нашлось в массиве, и false, если его там нет. К примеру, у нас есть массив:

Определить, присутствует ли в массиве конкретное значение, очень просто. Для ясности тест проводился в консоли:

Бесплатный курс «Full-Stack практика»

Изучите курс и создайте веб-приложение с нуля на JavaScript, NodeJS, ExpressJS

Получить курс

Обратите внимание, includes находит только целый элемент, а не вхождение в строку:

Поиск регистрозависимый:

Метод includes укажет, присутствует ли заданный элемент в массиве, но он не скажет вам, где он располагается. Однако вы можете задать стартовую точку поиска при помощи необязательного аргумента:

У метода includes довольно хорошая поддержка в последних версиях браузеров: Chrome 47, Firefox 43. Microsoft Edge и Safari 9. Метод не поддерживается в IE, но вы можете воспользоваться специальным полифилом polyfills.io. Из-за отсутствия в JS четко выраженной типизации данных метод includes можно применять и к строкам для нахождения слов, фраз и последовательностей символов.

Бесплатный курс «Full-Stack практика»

Изучите курс и создайте веб-приложение с нуля на JavaScript, NodeJS, ExpressJS

Получить курс

Метод indexOf

Метод indexOf возвращает позицию найденного элемента в массиве. Возьмем тот же самый массив:

При помощи метода indexOf мы можем определить позицию элемента в массиве, который равен передаваемому значению:

Если элемент не найден, indexOf вернет -1:

Метод отлично поддерживается во всех современных браузерах, в том числе и в IE9+. Как и в методе includes, можно добавить необязательный аргумент со стартовой точкой для поиска.

Метод lastIndexOf

Метод indexOf находит первое совпадение с начала массива. А метод lastIndexOf начинает поиск с конца массива.

Обратите внимание, метод lastIndexOf возвращает позицию с начала массива и вернет -1 (как indexOf), если совпадений не найдено. Как и в методе indexOf, в lastIndexOf можно указать дополнительный аргумент. Однако теперь этот аргумент будет указывать точку старта поиска с конца массива. Вы можете догадаться, что поддержка у данного метода такая же, как и у метода indexOf.

Источник: http://thenewcode.com/

Редакция: Команда webformyself.

Бесплатный курс «Full-Stack практика»

Изучите курс и создайте веб-приложение с нуля на JavaScript, NodeJS, ExpressJS

Получить курс

Курс по JavaScript: основы

Изучите JavaScript с нуля до результата!

Смотреть курс

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree