Есть массив из строк:
var massiv = [ "белый", "вкусный", "красное", "противное", "фиолетовая", "горькая" ]
Мы хотим отобрать из этого массива строки, которые заканчиваются на определённую последовательность символов. Как это сделать?
Что будем использовать?
Мы будем пользоваться методом filter() для объектов-прототипов Array. Мы будем пользоваться методом exec() для объектов-прототипов RegExp.
Нам нужно создать условие, которое будет возвращать true или false, когда мы будем сопоставлять конец строки под определённые последовательности символов.
Регулярное выражение оформляется символами / /(между наклонными линиями должен быть шаблон). В регулярных выражениях граница окончания строки обозначается знаком $. Это называется Утверждением (Assertion). Подобных Утверждений в языке JavaScript 8 штук.
Когда мы хотим найти последовательности до конца строки, то мы должны указать перед знаком $ нужные нам символы, так как мы хотим их видеть в строках.
Отбираем строки, заканчивающиеся на «ое»
Регулярное выражение будет выглядеть так:
/ое$/
Выполняем отбор элементов из массива со строками:
massiv.filter(i=>/ое$/.exec(i))
В ответ получаем новый массив с нужными нам строковыми элементами.
["красное", "противное"]

Как это работает?
На нашем массиве (massiv) мы вызываем через точку метод filter(). Этот метод создаст нам новый массив, не повреждая оригинальный. Фильтр пробегает по каждому элементу массива и проверяет условие отбора.
- Если условие отбора истинно — true, то фильтр закидывает этот элемент и его значение в новый массив.
- Если условие отбора ложно — false, то фильтр пропускает этот элемент и не добавляет его в новый массив.
Условием у нас является существование объекта, который вернёт нам метод exec(). Если отбор метода возвращает массив, тогда такой элемент попадёт в новый массив. Если возвращает null
, то не попадает в новый массив.
Другие примеры
Строки, заканчивающиеся на «ый»
massiv.filter(i=>/ый$/.exec(i)) (2) ["белый", "вкусный"]

Строки, заканчивающиеся на «ая»
massiv.filter(i=>/ая$/.exec(i)) (2) ["фиолетовая", "горькая"]

Информационные ссылки
Стандарт ECMAScript — Раздел «22.2.5.2 RegExp.prototype.exec ( string )» — https://tc39.es/ecma262/#sec-regexp.prototype.exec
Стандарт ECMAScript — Раздел «22.2.2.6 Assertion» — https://tc39.es/ecma262/#sec-assertion
Стандарт ECMAScript — Раздел «23.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )» — https://tc39.es/ecma262/#sec-array.prototype.filter