Проблема в области видимости JS
номера в отеле вмещают не более 8-ми людей должен быть минимум один взрослый на одного взрослого может быть не более двух детей Считай недостающие аргументы за 0.
Примеры:
canTheyBook(0, 2) === false - 0 взрослых, 2 ребенка. Нарушение правил отеля.
canTheyBook(2, 4) === true - 2 взрослых, 4 ребенка. Бронирование разрешено.
canTheyBook(2) === true - 2 взрослых. Бронирование разрешено.
canTheyBook(9) === false - 9 взрослых. Превышено количество людей для одной комнаты.
function canTheyBook(adultsCount, childrenCount) {
// write code here
const ad = 0, ch = 0
if (adultsCount === undefined){
adultsCount = ad
}
if (childrenCount === undefined){
childrenCount = ch
}
{
if (
(adultsCount == 0 && childrenCount > 0) ||
((adultsCount + childrenCount ) > 8) ||
(childrenCount > (adultsCount * 2))
){
return false
}
}
return true
}
TEST 6 FAILED
input: adultsCount = 0, childrenCount = undefined
expected output: false
Свернуть
Expected:
false
Received:
true
Ответы (2 шт):
Автор решения: Essle Jaxcate
→ Ссылка
Не совсем понимаю при чем здесь "Проблема в области видимости JS", но вот рабочий код, который проверяет условия задачи
const canTheyBook = (adults = 0, children = 0) => (
adults > 0 &&
adults + children <= 8 &&
children <= adults * 2
);
.
console.log(
canTheyBook(), // false
canTheyBook(2), // true
canTheyBook(9), // false
canTheyBook(2, 1), // true
canTheyBook(2, 5), // false
canTheyBook(6, 3) // false
);
Автор решения: wannacry
→ Ссылка
Не знаю правильно или нет, но работает)
function canTheyBook(adultsCount, childrenCount) {
if (adultsCount=== undefined || adultsCount === 0){
return false;
}
if (childrenCount === undefined){
childrenCount = 0;
}
if (adultsCount + childrenCount >= 9){
return false;
} else if ((adultsCount === 0 && childrenCount > 0 ) || (childrenCount > (adultsCount * 2))){
return false;
} else if (adultsCount >= 1 ){
return true;
}
}