Как в JavaScript работают методы indexOf() и lastIndexOf()?

методы строк для поиска подстроки в JS indexOf() находит индекс первого совпадения при движении слева направо lastIndexOf() определяет индекс последнего совпадения, выполняя поиск справа налево возвращают индекс…

Короткий ответ

Что ответить на собеседовании

методы строк для поиска подстроки в JS indexOf() находит индекс первого совпадения при движении слева направо lastIndexOf() определяет индекс последнего совпадения, выполняя поиск справа налево возвращают индекс первого символа найденного фрагмента либо -1, если совпадение отсутствует поддерживают необязательный параметр, задающий начальную позицию поиска (startIndex) учитывают регистр символов используются со строками и массивами, демонстрируя аналогичную логику

Подробный разбор

Ответ с пояснениями

Как в JavaScript работают методы indexOf() и lastIndexOf()?

  • методы строк для поиска подстроки в JS
  • indexOf() находит индекс первого совпадения при движении слева направо
  • lastIndexOf() определяет индекс последнего совпадения, выполняя поиск справа налево
  • возвращают индекс первого символа найденного фрагмента либо -1, если совпадение отсутствует
  • поддерживают необязательный параметр, задающий начальную позицию поиска (startIndex)
  • учитывают регистр символов
  • используются со строками и массивами, демонстрируя аналогичную логику

Подробный ответ

Основной ответ

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

Ключевые моменты

  • Направление поиска: indexOf() просматривает строку от её начала и выдаёт индекс первого совпадения. В отличие от него, lastIndexOf() начинает проверку с конца и возвращает индекс последнего найденного вхождения.
  • Аргументы: каждому методу можно передать строку поиска и необязательную позицию, с которой следует начать проверку (fromIndex для indexOf, fromIndex с конца для lastIndexOf).
  • Производительность: время выполнения обоих методов зависит от длины строки и описывается как O(n). При работе с очень большими строками или множественными поисковыми операциями могут быть полезны альтернативы, включая регэкспы и индексы.
  • Типы данных: эти методы входят в прототип String, однако у массивов также есть соответствующие варианты с близкой логикой работы.

Практический контекст

В веб-разработке indexOf() обычно используют, чтобы проверить присутствие подстроки, например if (str.indexOf('test') !== -1), а lastIndexOf() помогает найти последний разделитель пути и отделить имя файла от расширения. Для более сложных сценариев в современных проектах иногда выбирают методы includes() или String.prototype.search() с регулярками, но для обычного поиска подстроки indexOf() по-прежнему остаётся наиболее простым и оптимальным решением.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку