Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Люди добрые и знающие помогите с расселением по номерам!!!! (https://javascript.ru/forum/misc/83925-lyudi-dobrye-i-znayushhie-pomogite-s-rasseleniem-po-nomeram.html)

Mr_Po 20.04.2022 14:54

Люди добрые и знающие помогите с расселением по номерам!!!!
 
Всем привет, по тихоньку осваиваю JS, прохожу курсы и тут такая задача:
Нужно создать функцию recommendRoom, которая будет подбирать наиболее подходящую комнату для указанного числа гостей adultsCount, childrenCount и babiesCount.

Теперь есть 2 вида комнат

small room до 4 человек
big room до 8 человек
Не забывай о правиле extra bed (подселить младенца). Оно действует и для 4-местных, и для 8-местных номеров.

О валидности данных можешь не беспокоиться, canTheyBook уже всё проверил. Просто верни правильную строку для заданных параметров.

Я написал код, но всё-равно не пойму как пристроить "extra bed", помогите пожалуйста с решением:thanks: :write: :
function recommendRoom(adultsCount = 0, childrenCount = 0, babiesCount = 0) {
  if (adultsCount + childrenCount <= 4) {
    return ('small room');
  }

  if (adultsCount + childrenCount <= 8) {
    return ('big room');
  }
}

рони 20.04.2022 15:11

Mr_Po,
возможно так ... extra bed описано расплывчато.
if ((adultsCount + childrenCount + babiesCount) <= 4)
if ((adultsCount + childrenCount + babiesCount)<= 8)

рони 20.04.2022 15:11

Mr_Po,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Mr_Po 20.04.2022 15:21

Увы, не прошло.....

Белый шум 20.04.2022 15:24

if (
  (adultsCount + childrenCount + babiesCount <= 4)  ||
  ((adultsCount + childrenCount + babiesCount <= 5) && (babiesCount > 0))
  ) {
    return ('small room');
} else {
    return ('big room');
}

Mr_Po 20.04.2022 15:44

Блин тоже не проходит, в условии должно выполнятся "small room + extra bed", "big room + extra bed"........

Белый шум 20.04.2022 16:00

Не очень понятно что вам нужно... Может так?:

function recommendRoom(adultsCount = 0, childrenCount = 0, babiesCount = 0) {
  var sum = adultsCount + childrenCount + babiesCount;

  if (sum <= 4) {
      return ('small room');
  }

  if (sum <= 5  &&  babiesCount > 0) {
      return ('small room + extra bed');
  }

  if (sum <= 8) {
      return ('big room');
  }

  if (sum <= 9  &&  babiesCount > 0) {
      return ('big room + extra bed');
  }
}

Mr_Po 20.04.2022 18:13

Всё решил, долго думал конечно, но итог таков, Спасибо за подсказки))))
function recommendRoom(adultsCount = 0, childrenCount = 0, babiesCount = 0) {
  const totalCount = adultsCount + childrenCount + babiesCount;

  if (totalCount === 5 && babiesCount > 0) {
    return 'small room + extra bed';
  }

  if (totalCount === 9 && babiesCount > 0) {
    return 'big room + extra bed';
  }

  if (adultsCount + childrenCount <= 4) {
    return 'small room';
  }

  if (adultsCount + childrenCount <= 8) {
    return 'big room';
  }
}


Часовой пояс GMT +3, время: 06:39.