Почему при функциональном выражении не работает тернарный оператор?
Если я пишу функциональное выражение с помощью конструкции if else
const plantNeedsWater = function (day) {
if (day === 'Wednesday') {
return (true)
} else {
return(false)
}
}
console.log(plantNeedsWater('Tuesday'))
// return false
То всё идёт хорошо, а если я использую тернарный оператор
const plantNeedsWater = function (day) {
day === 'Wednesday' ? console.log(true) : console.log(false)
}
console.log(plantNeedsWater('Tuesday'))
То выводится ошибка в чём дело?
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Потому что в функции с тернарником нет return и зачем-то используются ненужные консоль логи
Автор решения: Grundy
→ Ссылка
Проблема в некорректном преобразовании к тернарному оператору.
Стоит обратить внимание, что начальная функция возвращает значение, версия же с тернарным оператором сама выводит лог.
Таким образом нужно либо изменить функцию
const plantNeedsWater = function (day) {
return day === 'Wednesday' ? (true) : (false)
}
Либо изменить вызов этой функции
plantNeedsWater('Tuesday');