Логика простая, но в коде много повторений.
1) Если выбран один из животных (
dog, cat, cow) кроме
lion, то сохраняем его как
последнее дружелюбное животное и возвращаем
Hello
.
2) Но если выбран
lion, то нужно уже проверить
check
равно
true
, только в этом случае сохранить его как
дружелюбное.
3) А в остальных случаях возвращаем
Growl
или
Hello
в зависимости от
check
, без сохранения.
let check = true;
let latestFriendlyAnimal = '';
function sayHello(animal) {
if (check && animal !== 'lion' && animal !== 'dog' && animal !== 'cat' && animal !== 'cow') {
return "Growl";
}
if ((check && animal === 'lion') || animal === 'dog' || animal === 'cat' || animal === 'cow') {
latestFriendlyAnimal = animal;
}
return 'Hello';
}
console.log(sayHello('wolf'));
Ссылка на
JSFiddle
Как сократить данную логику ?
Includes
тут не поможет наверное так как для
lion
отдельная логика.