簡體   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