给出以下代码,我需要两件事:
我将使用for循环和if / else解决第一部分,但是我如何仅在用户提示下又包括第二部分?
var months = ["Not in use", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"];
var userInput = prompt("Choose a month by number or name!");
答案 0 :(得分:0)
您可以对输入值进行检查并相应地返回响应:
let months = ["Not in use", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"];
let locator = v => Number.isNaN(Number(v)) ? months.indexOf(v) : months[v];
console.log(locator("Aug"));
console.log(locator("3"));
答案 1 :(得分:0)
您应该在索引中添加1,而不是在数组中的第一个空元素。接下来,您应该检查userInput是否为月份之一,并将其更改为月份的索引+1。
let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"]
let userInput = prompt("Choose a month by number or name!");
if (months.include(userInput) {
userInput = months[userInput + 1]
}
此外,如果用户输入的字符串在1到12之间,则必须将它转换为整数。
let parsedInt = parseInt(userInput)
if (parsedInt >= 1 && parsedInt <= 12) {
userInput = parsedInt
}
答案 2 :(得分:0)
您可以使用if/else
检查用户提示的类型。
let userInput = prompt('Choose a month by number or name')
let monthNumber = parseInt(userInput)
if (monthNumber === NaN) {
// Do your stuff using userInput as a monthName
} else {
// Do your stuff using monthNumber
}