2011-06-06 21 views
0

我創建某些陣列的變量爲一個常數,例如YY1,YY2,YY3等,我能夠使用以顯示數組元素如何追加(串連)以JavaScript

for (j=0; j < count; j++){ 
    alert(yy1[j]); 
} 

,並通過改變一些其他的陣列,即YY2,YY3 ...

如何顯示在一個循環數組一樣

for (i=0; i< lengthL; i++){ 
    for (j=0; j < count; j++){ 
     alert(yyi[j]); 
    } 
} 

那是怎樣加入YY與我。

請讓我知道如果我不清楚,在此先感謝。

+2

「請讓我知道,如果我不清楚」 - 你不清楚。 – Asaph 2011-06-06 22:53:40

+0

如果yy1 ... yyn是全局的,那麼你可以使用window ['yy'+ i] [j] – 2011-06-06 22:56:38

+0

如果i = 2,我想顯示yy2 [j]並且如果i = 4,我想顯示yy4 [ j]並且很快就會開始。那麼如何將y(常量)與i(變量)結合起來。請讓我知道,謝謝。 – chella 2011-06-06 22:57:39

回答

0

你在找什麼是eval(警告,Eval is evil!)。你可以用它來做你想做的事情,但你應該改變數據的存儲方式以避免它。這很容易(請參考other answer)。

var yy1 = [11, 12, 13]; 
var yy2 = [21, 22, 23, 24, 25]; 
var yy3 = [31, 32, 33, 34]; 

for (i = 1 ; i <= 3 ; i++) 
{ 
    var arr = eval("yy" + i); 

    for (j = 0 ; j < arr.length ; j++) 
    { 
     console.log(arr[j]); 
    } 
} 

Demo

您應該使用FirefoxFirebug,這樣就可以改用警報的console.log。

+0

非常感謝您的幫助,非常感謝。 – chella 2011-06-07 15:34:43

+0

這裏不需要eval():var arr = window ['yy'+ i]具有相同的結果。 – 2011-06-07 16:26:52

+0

謝謝Tim和YES,你是對的,它有相同的結果。 – chella 2011-06-07 19:41:26

4

我相信,提問者是說如何在同一個循環迭代yy1yy2yy3。答案是你應該以不同的方式構建你的變量。如果1,2和3確實是,那麼你應該只有一個yy數組,並給它的每個「行」自己的數組。

換句話說,使用yy [0],yy [1]和yy [2]而不是yy1,yy2和yy3。例如,以下是完全有效的:

var yy = [ 
    [0, 1, 2], 
    [3, 4], 
    [5, 6, 7, 8] 
]; 

// Examples 
console.log(yy[0][0]); // returns 0 
console.log(yy[1][0]); // returns 3 
console.log(yy[2][2]); // returns 7 

// Iterating over the whole thing 
for (var i = 0; i < yy.length; i++) { 
    for (var j = 0; j < yy[i].length; j++) { 
    console.log(yy[i][j]); 
    } 
} 

有沒有辦法做什麼你問這是既簡單(即宣告YY1,YY2和YY3然後填充另一陣列)和濫用自由(即eval在這裏是邪惡的)。

+0

感謝您的回答布賴恩,我要去與amit_g的評估選項。 – chella 2011-06-07 15:34:05