2015-02-04 21 views
0

我有一個字符串數組:如何使用字符串引用變量?

arr = ["bar","baz"] 

和我有幾個變量:

var bar = 'Hello'; 
var baz = 'bye'; 

使用數組,我怎麼能輸出繼電器:

hello 
bye 

我知道如何循環,但是,我如何使用字符串來拒絕變量?

+0

'VAR ARR =新的Array(); arr [「somevalue」] =「你好」; var bar = arr [「somevalue」];' – DLeh

+0

@DLeh否他意味着他想通過計算其名稱來訪問變量。儘管通過計算名稱(使用'[]'運算符)可以訪問對象屬性,並且全局變量是對象屬性(全局對象,瀏覽器中的「窗口」),但它通常不可用於JavaScript。 – Pointy

+0

@DLeh你爲什麼要'新'具體的數組',然後用它作爲關聯容器?只需使用一個對象(或者'Map',如果可用的話)。 – ssube

回答

1

如果變量是全局的,你可以通過名稱使用window元素的屬性索引來訪問它們:

arr = ["bar","baz"] 
 

 
var bar = 'Hello'; 
 
var baz = 'bye'; 
 

 
arr.forEach(function(item) { 
 
    alert(window[item]); 
 
});

3

最好的選擇是存儲變量作爲屬性的對象中,並引用他們的方式:

var data = { 
    bar: "Hello", 
    baz: "Bye" 
}; 

arr.forEach((key) => doStuff(data[key])); 

如果做不到這一點,如果你有(一個方法調用中也許this)訪問其他一些範圍,您可以將該變量作爲屬性保留在範圍內。

如果沒有其他任何可用的範圍,沒有好的選擇,所有的全局變量都連接到self(或window,如果有的話)的範圍,所以你可以使用相同的排序window[key]訪問。

+0

擊敗我,+1 – Dayan

相關問題