我有一個字符串數組:如何使用字符串引用變量?
arr = ["bar","baz"]
和我有幾個變量:
var bar = 'Hello';
var baz = 'bye';
使用數組,我怎麼能輸出繼電器:
hello
bye
我知道如何循環,但是,我如何使用字符串來拒絕變量?
我有一個字符串數組:如何使用字符串引用變量?
arr = ["bar","baz"]
和我有幾個變量:
var bar = 'Hello';
var baz = 'bye';
使用數組,我怎麼能輸出繼電器:
hello
bye
我知道如何循環,但是,我如何使用字符串來拒絕變量?
如果變量是全局的,你可以通過名稱使用window
元素的屬性索引來訪問它們:
arr = ["bar","baz"]
var bar = 'Hello';
var baz = 'bye';
arr.forEach(function(item) {
alert(window[item]);
});
最好的選擇是存儲變量作爲屬性的對象中,並引用他們的方式:
var data = {
bar: "Hello",
baz: "Bye"
};
arr.forEach((key) => doStuff(data[key]));
如果做不到這一點,如果你有(一個方法調用中也許this
)訪問其他一些範圍,您可以將該變量作爲屬性保留在範圍內。
如果沒有其他任何可用的範圍,沒有好的選擇,所有的全局變量都連接到self
(或window
,如果有的話)的範圍,所以你可以使用相同的排序window[key]
訪問。
擊敗我,+1 – Dayan
'VAR ARR =新的Array(); arr [「somevalue」] =「你好」; var bar = arr [「somevalue」];' – DLeh
@DLeh否他意味着他想通過計算其名稱來訪問變量。儘管通過計算名稱(使用'[]'運算符)可以訪問對象屬性,並且全局變量是對象屬性(全局對象,瀏覽器中的「窗口」),但它通常不可用於JavaScript。 – Pointy
@DLeh你爲什麼要'新'具體的數組',然後用它作爲關聯容器?只需使用一個對象(或者'Map',如果可用的話)。 – ssube