что за ошибка TypeError: Cannot read property 'length' of null
функция принимает массив строк и возвращает только те, которые содержат не менее 5 гласных (a, e, i, o, u).
function filter5Vowels(obj) {
let array = obj.map(vowels5 => {
const regex = /[aeiouAEIOU]/g
const resRegex = new RegExp(regex)
let str = vowels5.match(resRegex)
if (str.length >= 5) {
return vowels5
}
return null
})
let arr = []
arr = array.filter(function (s) {
return s !== null
})
return arr
}
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
Метод .match возвращает null, в случае, если не было найдено ни одного совпадения.
Для решения можно либо добавить соответствующую проверку, либо воспользоваться Optional chaining оператором.
Также стоит обратить внимание, что первый map можно заменить на filter, и сразу получать итоговую коллекцию:
function filter5Vowels(obj) {
return obj.filter(vowels5 => {
const regex = /[aeiouAEIOU]/g;
const resRegex = new RegExp(regex);
let str = vowels5.match(resRegex);
return (str?.length >= 5);
})
}