@Miron4ek_228

Регулярное выражение в условии filter. Почему всегда false?

Код:
const candidate = ['Jimmy', 'Rayn', 'Jack', 'Vladimir', 'joen', ];
const friend = candidate.filter(item => item[0] == /J/i ? true : false)
console.log(friend)


Необходимо чтобы в массив friend попали только те имена, которые начинаются на букву J. Но условие почему-то всегда возвращает false, несмотря на наличие подходящих имен. Почему так происходит?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 3
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
Советую посмотреть
const candidate = ['Jimmy', 'Rayn', 'Jack', 'Vladimir', 'joen', ];
const friend = candidate.filter(item => item[0].match(/J/i))
console.log(friend)
Ответ написан
@WAR_VIK
У Вас неправильно составлено регулярное выражение. Можно вот так:
const arr = ['Jimmy', 'Rayn', 'Jack', 'Vladimir', 'joen'];
let res = arr.filter(el => /J/i.test(el[0]));
console.log(res);
Ответ написан
@ildar-meyker
Ну вы сравниваете объект регулярного выражения типа RegExp со строкой типа String. И закономерно получаете false.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы