Помощь с функцией которая возвращает заглавные буквы
Помогите с написанием функции. Функция принимает на вход строку, а возвращает заглавные буквы из этой строки. Я не придумал ничего лучше чем сделать массив из заглавных букв, но не понимаю как корректно из сравнить со строкой. Строку превратил в массив, как можно их сравнить и вернуть нужный результат?
function getCapitalsLetters(string) {
const arr = ["А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я"]
const newString = string.split('')
newString.filter(item => item.indexOf(arr) === arr)
}
console.log(getCapitalsLetters('АвапВАПпсГГШШшш'))
Ответы (2 шт):
Автор решения: ksa
→ Ссылка
Функция принимает на вход строку, а возвращает заглавные буквы из этой строки.
Предложу такой вариант...
function getCapitalsLetters(string) {
return string.replace(/[^А-ЯЁ]/g, '')
}
console.log(getCapitalsLetters('АвапВАПпсГГШШшш'))
Автор решения: Егор Грачев
→ Ссылка
function getCapitalLetters(str) {
const capitals = [];
for (let i = 0; i < str.length; i++) {
if (str[i] === str[i].toUpperCase() && str[i].match(/[А-Я]/)) {
capitals.push(str[i]);
}
}
return capitals.join('');
}
Берём строку и проверяет каждый символ по очереди. Если символ является заглавной буквой и это буква кириллицы в верхнем регистре, то эта буква добавляется в массив. После возвращает все найденные заглавные буквы в одной строке.