Именам оканчиваются на 'Я' или 'А' дать значение 0
Подскажите пожалуйста, что я не правильно делаю? Необходимо именам которые оканчиваются на 'Я или А' дать значение 0
let nameArr = ['Игорь', 'Яна', 'Валерий', 'Оля', 'Вячеслав', 'Борис']
let isMaleName = (name) => name.endsWith('а' || 'я') ? 1 : 0;
let numberArr = nameArr.map(isMaleName)
console.log(numberArr)
Ответы (3 шт):
Автор решения: Enokin
→ Ссылка
Попробуйте вот так. Функция endsWith проверяет оканчивается ли на нужное вам значение строка и принимает один параметр. Поэтому вам нужно запускать две проверки через условие ИЛИ
let nameArr = ['Игорь', 'Яна', 'Валерий', 'Оля', 'Вячеслав', 'Борис']
let isMaleName = (name) => name.endsWith('а') || name.endsWith('я') ? 1 : 0
let numberArr = nameArr.map(isMaleName)
console.log(numberArr)
Автор решения: Leks
→ Ссылка
let nameArr = ['Игорь', 'Яна', 'Валерий', 'Оля', 'Вячеслав', 'Борис'];
let newArr = [];
let arr = nameArr.map( item => item.slice(item.length-1))
for(let key of arr){
if( key == 'а' || key == 'я' ){
newArr.push(0)
} else {
newArr.push(1)
}
}
console.log(newArr);
Автор решения: UModeL
→ Ссылка
Для вашей задачи вполне хватит небольшой "регулярки":
let nameArr = ['Игорь', 'Яна', 'Валерий', 'Оля', 'Вячеслав', 'Борис'];
let isMaleName = (name) => name.match(/[ая]$/i) ? 0 : 1;
let numberArr = nameArr.map(isMaleName);
console.log(numberArr);