let arr = ['ba','ab','ba','ab']
let reg = /a/gi
let filtered = arr.filter(str => reg.test(str))
console.log(filtered)
// вывод [ 'ba', 'ba' ]
let arr = ['ab','ba','b','ab','ba']
let reg = /a/gi
let filtered = arr.filter(str => reg.test(str))
console.log(filtered)
//вывод [ 'ab', 'ba', 'ab', 'ba' ]
let arr = ['ba','ab','ba','ab']
let reg = /a/gi
let filtered = arr.filter(str => reg.test(str))
/*итерация первая(ba): регулярка ищет букву А и находит ее на
индексе 1(нумерация у нас с 0). Окей, буква есть,
поэтому возвращаем true
Итерация вторая(ab): регулярка запомнила индекс, по которому
нашла первую букву, и поэтому начинает поиск с индекса 1.
Там у нас только b,поэтому возвращаем false.
ВНИМАНИЕ, ФОКУС!Если регулярное выражение, как в нашем
случае, не нашло совпадение, оно "забывает" индексы.
То есть считается что весь текст проверен.
Следующая итерация будет искать с начала. Поэтому...
Итерация третья ()
Итерация третья(ab) - смотри итерацию первую*/
console.log(filtered)
// вывод [ 'ba', 'ba' ]