Попытка найти динамическую альтернативу оператору if / else в TypeScript

#javascript #typescript #if-statement

#javascript #typescript #if-statement

Вопрос:

У меня возникла проблема со следующим вопросом: за каждый час, когда велосипедист едет на своем велосипеде, ему нужно будет выпить 0,5 литра воды. Итак, если велосипедист едет в общей сложности 1 час, ему / ей нужно будет выпить 0,5 литра воды. Если они будут работать в течение 3 часов, Это будет в общей сложности 1,5 литра и т. Д.

Моей первой мыслью было использовать оператор if / else, подобный этому:

     export function liters(time: number): number {
       if (time === 1){
        return 0.5 liters 
      } else if (time === 1.5) {
         return 1 liters
       }
    }

  const answer = liters(1)
  console.log(answer)
 

Но потом я понял, что не могу продолжать писать операторы if / else вечно, особенно если кто-то регистрирует 100 часов циклирования. Я уверен, что есть лучший способ подойти к этой проблеме и сделать ее динамической. Есть ли у кого-нибудь какие-либо рекомендации? В настоящее время я изучаю TypeScript, поэтому, пожалуйста, не говорите мне ответ, я бы предпочел, чтобы некоторые подсказки или указывали в правильном направлении, чтобы я мог решить сам. Спасибо!

Комментарии:

1. Почему бы и нет time * 0.5 ?

2. ^ И time напиши перед этим.

3. @choz зависит от постановки задачи. Также может быть приемлемо не округлять — если велосипедист едет полчаса, ему все равно, вероятно, потребуется выпить 250 мл воды.

4. На самом деле я должен был сказать ceil время. Учитывая его else if утверждение. Но да, нужно больше разъяснений с требованием.

Ответ №1:

Вам просто нужно умножить количество литров на час

 export function liters(time: number): number {
  const litersPerHour = 0.5;
  const total = litersPerHour * time
  return total
}