@Artur991

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

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


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

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

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


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

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽