繁体   English   中英

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

[英]How do I use a function result to call a variable name?

我有一个<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]

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

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];

您似乎想基于键“查找”一个值。 通常,这是使用所谓的“字典”(或更正式地说是“ 关联数组 ”,有时也称为“ 哈希表 ”,尽管哈希表只是一种字典)来完成的。

JavaScript具有类似于您可以使用的对象的名称 他们正在使用大括号书面{}和密钥从值用冒号隔开: 键是字符串,但是引号通常是可选的。 值可以是您想要的任何值。

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中,键通常只能是字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM