簡體   English   中英

使用變量作為數組名稱的Javascript

[英]Javascript using variable as array name

我在Javascript中有幾個數組,例如

a_array [0] =“ abc”;
b_array [0] =“ bcd”;
c_array [0] =“ cde”;

我有一個采用數組名稱的函數。

function perform(array_name){
    array_name = eval(array_name);
    alert(array_name[0]);
}
perform("a_array");
perform("b_array");
perform("c_array");

當前,我使用eval()做我想要的事情。
有沒有不使用eval()的方法?

您可以傳遞數組本身:

function perform(array) {
    alert(array[0]);
}
perform(a_array);

或通過this訪問它:

function perform(array_name) {
    alert(this[array_name][0]);
}
perform('a_array');

不用通過eval其名稱來選擇數組,而是將數組存儲在一個對象中:

all_arrays = {a:['abc'], b:['bcd'], c:['cde']};
function perform(array_name) {
    alert(all_arrays[array_name][0]);
}

您為什么不能只傳遞數組?

function perform(array){
    alert(array[0]);
}
perform(a_array);
perform(b_array);
perform(c_array);

還是我誤解了這個問題...

為什么不將數組作為函數參數傳遞呢?

function perform(arr){
    alert(arr[0]);
}

我相信您創建的任何變量實際上都是window對象的屬性(我假設是因為您使用了警報,表明它正在Web瀏覽器中運行)。 你可以這樣做:

alert(window[array_name][0])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM