如何避免在javascript中编写数千个变量?

时间:2014-09-27 12:58:17

标签: javascript arrays function variables if-statement

(我是初学者)。如果我想建立一个系统来提问并使用if语句和变量返回用户输入的答案,那么将会有大量潜在的答案组合,我觉得我会被迫为每个名字写出一个变量例如,在世界上,然后再次这样做,但每个潜在的年龄/名称组合,等等。显然,有一个更容易的解决方案。大多数人如何解决这个问题?

我试过这个:

var yourName = prompt("What's your name?");


if (yourName == prompt.value) {
    console.log("It worked!");
}

它不起作用,没有任何东西出现在控制台中。

重要的是:这只能在语句,变量,函数和数组中完成吗?或者我是否必须使用对象和切换语句?

编辑:(这只是一个关于购物的例子):

function selectPants () {

    var jeans = "jeans";
    var khakis = "khakis";

    var yourPants = prompt("What kind of pants do you want?");



    if (yourPants == jeans) {
        console.log("Okay, that will cost $10."), selectShirt ();
    } 
}   

function selectShirt () {

    var plaid = "plaid";
    var v-neck = "v-neck";


    var yourShirt = prompt("What shirt do you want?");

    if (yourShirt == plaid) {
      console.log("Okay, that will cost $5, your total so far is: ??"), selectShoes ();
    }
}


    selectPants ();

正如您所看到的,我还需要一些额外的系统来增加成本。非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

提示是一个函数而不是一个类,提示。“东西”意味着什么,你必须写提示符()

var yourName = prompt("What's your name?");


if (yourName == prompt()) {
    console.log("It worked!"); // Open your console to see this
}

答案 1 :(得分:0)

更好的方法是将问题对象(针对每个问题)存储在问题集合中。 该集合将是javascript中的数组。

然后,您可以迭代每个问题,提示它们并将答案保存回每个问题对象。

// collection of questions. answers are empty to start with
var questions = [{ "question" : "Whats your name", "answer": ""},
                 { "question" : "What is your age", "answer": ""}];

// Ask all the questions
for(var i=0,len = questions.length; i < len; i++){
  var ans = prompt(questions[i].question);
  questions[i].answer = ans; // store your answer
}  

// see what is the answer for the first question.
console.log(questions[0].answer);