Принять быстрый ввод номера + печать строки - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь создать строковый вывод, используя числа. Пользователь вводит число + соответствующая строка выводится

Мой код кажется выключенным + также есть ли способ использовать цикл / while, чтобы сделать этот аккуратнее?

//Single input
let num = prompt("Please enter a number");


//Comparing if
if (num === 1)
{
   console.log("Mon");
} 
else if (num === 2)
{
  console.log ("Tue");
}
else if (num === 3)
{
  console.log ("Wedn");
}
else if (num === 4)
{
  console.log ("Thurs");
}
else if (num === 5)
{
  console.log ("Frid");
}
else if (num === 6)
{
  console.log ("Satu");
}
else if (num === 7)
{
  console.log ("Sund");
}

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

Более понятным способом было бы использовать карту для поиска дней по заданному числу. Например,

let days = {
  1: "Mon",
  2: "Tue",
  3: "Wed",
  4: "Thur",
  5: "Fri",
  6: "Sat",
  7: "Sun",
}


let num = prompt("Please enter a number");
console.log(days[num])
0 голосов
/ 30 октября 2019

let num = prompt("Please enter a number"); возвращает строку , а не число , вам нужно преобразовать результат в число.

Один из способов сделать это:

let num = +prompt("Please enter a number"); // note the plus sign before prompt

или

let num = parseInt(prompt("Please enter a number"));

//Single input
let num = +prompt("Please enter a number");


//Comparing if
if (num === 1)
{
   console.log("Mon");
} 
else if (num === 2)
{
  console.log ("Tue");
}
else if (num === 3)
{
  console.log ("Wedn");
}
else if (num === 4)
{
  console.log ("Thurs");
}
else if (num === 5)
{
  console.log ("Frid");
}
else if (num === 6)
{
  console.log ("Satu");
}
else if (num === 7)
{
  console.log ("Sund");
}

Что касается изготовления этого аккуратного?

const daysOfTheWeek = ["Mon", "Tue", "Wedn", "Thurs", "Frid", "Satu", "Sund"];
const day = +prompt("Please enter a number");

if(day > 0 && day <= daysOfTheWeek.length){
    console.log(daysOfTheWeek[day - 1]);
} else {
    console.log("No such day");
}
...