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

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

本文关键字:调用 变量名 结果 何使用 函数      更新时间:2023-09-26

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

console将返回:

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