@Artur991

Как проверить, является ли параметр callback-функции конкретной строкой?

Есть функция с тремя функциями-колбеками
function offerMeal(
  clientPreferences,
  offerVegan,
  offerMeat,
) {


Если clientPreferences возвращает строку 'vegan' - нужно вернуть вызов offerVegan, иначе - вызов offerMeat.

Я пишу через if/else, и не могу разобраться, как указать условие, что если в параметр попадет 'vegan', нужно вызвать offerVegan.

Вот, что получилось пока:
if (clientPreferences=== 'vegan') {
    offerVegan();
  } else {
    offerMeat();
    }


Заранее спасибо!
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
@Dexdot
Для того, чтобы получить значение возвращаемое из функции, эту функцию нужно вызвать, что вы и забыли сделать.
Откорректированный код:
const preferences = clientPreferences();
if (preferences === 'vegan') {
  offerVegan();
} else {
  offerMeat();
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Где гарантии, что в clientPreferences лежит строка, а не какой-нибудь объект или функция? Нет таких гарантий, поэтому имеет смысл сначала проверить тип переменной при помощи typeof и только если она string проверять на совпадение со словом vegan.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы