JavaScript数组输出

时间:2019-01-05 15:22:13

标签: javascript arrays

给出以下代码,我需要两件事:

  1. 我知道该怎么做,基本上用户输入一个数字,然后在输出中提供匹配的月份。
  2. 但是在同一提示下,如果用户写了一个月(对于eksample为“ Aug”),如何返回索引号?

我将使用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!");

3 个答案:

答案 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
}