首页 > 解决方案 > 我如何解决这个 javascript prompt=userInput 从数组到警报问题

问题描述

一旦我运行此代码,我应该得到 userInput,它是一个介于 0-3 之间的数字和警报框中的比萨饼名称。我究竟做错了什么?

var menu = [
  "0 = Calzone",
  "1 = Ost & Skinke",
  "2 = Margarita",
  "3 = BBQ Grill"
];

var userPostnummer = prompt("skriv inn postnummer")

if (userPostnummer >= 1000 && userPostnummer <= 1999) {
  alert("gratulerer du får et gratis pizza")
  var userInput = prompt("hvilket meny ønsker du å bestille?" + menu) + alert("pizza " + userInput + " er på vei til postnummer " + userPostnummer)

} else {
  alert("beklager, du er ikke i området hvor vi tilbyr gratis pizza")
};

标签: javascriptarraysalertprompt

解决方案


您收到的原因undefined是因为您试图userInput在最终声明之前使用它。您尝试alert在声明中的同一操作中使用它。

userInput您需要在获得其值后将要执行的警报分开,如下所示。

如果您还想引用menu数组中的“披萨值”,则需要替换userInputmenu[userInput]

var menu = [
  "0 = Calzone",
  "1 = Ost & Skinke",
  "2 = Margarita",
  "3 = BBQ Grill"
];

var userPostnummer = prompt("skriv inn postnummer")

if (userPostnummer >= 1000 && userPostnummer <= 1999) {
  alert("gratulerer du får et gratis pizza")
  var userInput = prompt("hvilket meny ønsker du å bestille?" + menu); 
  // Alert is now on its own row.
  // userInput is also replaced with menu[userInput]
  if (userInput < menu.length)
    alert("pizza " + menu[userInput] + " er på vei til postnummer " + userPostnummer)

} else {
  alert("beklager, du er ikke i området hvor vi tilbyr gratis pizza")
};


推荐阅读