数组等于两个不同的值并动态更改变量

时间:2012-04-14 04:15:44

标签: javascript arrays variables equals

我希望用户输入ID号码。当用户单击按钮时,代码将查找具有所有id号列表的数组,以检查它是否存在。然后它将检查该ID号的价格。根据价格和查询的ID号,我希望它能动态更改名为“成本”的变量。因此,例如,用户键入数字“5555”如果ID 5555存在则代码查找,如果存在,则检查该ID的价格。基于该价格,我希望它改变一个名为cost的变量。同样,如果我查找id为“1234”。它会查找id,如果存在,则获得价格,然后更改名为cost的变量。

我甚至不知道从哪里开始。我正在考虑使用数组来映射id号和价格,但我不知道这是否有效。我想要一个数字基本上等于另一个数字,然后根据第二个数字更改变量,我想不出怎么做。

id[0] = new Array(2)
id[1] = "5555";
id[2] = "6789";
price = new Array(2)
price[0] = 45;
price[1] = 18;

1 个答案:

答案 0 :(得分:1)

您可以将对象用作对象之类的字典。

// Default val for cost
var cost = -1;

// Create your dictionary (key/value pairs)
// "key": value (e.g. The key "5555" maps to the value '45')
var list = {
    "5555": 45,
    "6789": 18
};

// jQuery click event wiring (not relevant to the question)
$("#yourButton").click(function() {
    // Get the value of the input field with the id 'yourInput' (this is done with jQuery)
    var input = $("#yourInput").val();

    // If the list has a key that matches what the user typed,
    // set `cost` to its value, otherwise, set it to negative one.
    // This is shorthand syntax. See below for its equivalent
    cost = list[input] || -1;

    // Above is equivalent to
    /*
    if (list[input])
        cost = list[input];
    else
        cost = -1;
    */

    // Log the value of cost to the console
    console.log(cost);
});