Почему при функциональном выражении не работает тернарный оператор?

Если я пишу функциональное выражение с помощью конструкции 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');
→ Ссылка