如何使用函数结果调用变量名?

时间:2014-06-05 18:43:38

标签: javascript

我有一个<select>可用的工作除以城市,如下所示:

<select id="jobs">
    <option value="columbus">Columbus, OH: Material Handler</option>
    <option value="columbus">Columbus, OH: Fulfillment Center Worker</option>
    <option value="baltimore">Baltimore, MD: Material Handler</option>
  </select>

我正在拉这个值:

var jobName = document.getElementById("jobs").value;

返回结果就好了。对于我得到的第一个选项:

columbus

这很好,现在我的问题是,如何使用它来调用另一个变量,例如:

var columbus = ['Columbus','3500 Southwest Blvd',', 8 am to 3:30 pm'],
    baltimore = ['Baltimore','913 Old Philadelphia Rd',', 8 am to 3 pm'],
    currentCity = columbus[0] 
console.log(currentCity);

控制台将返回:

Columbus

但是,如何使用jobName动态更新currentCity,如:

currentCity = jobName[0]

2 个答案:

答案 0 :(得分:2)

您应该使用一个对象来保存所有城市信息,而不是拥有不同的变量,如下所示:

var cities = {
  colombus: ['Columbus','3500 Southwest Blvd',', 8 am to 3:30 pm'],
  baltimore: ['Baltimore','913 Old Philadelphia Rd',', 8 am to 3 pm']
};

然后你可以写

var currentCity = cities[jobName][0];

答案 1 :(得分:2)

您似乎想要根据密钥“查找”值。通常,这是使用所谓的“字典”来完成的 - 或者更正式地说,是“associate array”(有时也称为“hash table” - 尽管哈希表只是一个字典类型。

JavaScript类似于您可以使用的名为 objects 的东西。它们使用花括号{}编写,键与冒号:的值分隔开来。键是字符串,但引号通常是可选的。价值观可以是你想要的任何东西。

var cities = {
    columbus: ['Columbus','3500 Southwest Blvd',', 8 am to 3:30 pm'],
    baltimore: ['Baltimore','913 Old Philadelphia Rd',', 8 am to 3 pm']
};

获得密钥(示例中为jobName)后,您只需使用cities对象查找所需内容即可。

var jobInfo = cities[jobName],
    currentCity = jobInfo[0];

console.log(currentCity);

旁注:JavaScript对象并不是真正完整的词典。在大多数其他语言中,词典实际上可以为键使用许多不同类型的值(例如,整数),但在JavaScript中,键通常只能是一个字符串。