2013-10-16 95 views
0

需要一個適當的解決方案如何編寫這個表達式。jQuery多個數組循環

var ary1 = ["","",""]; 
var ary2 = ["","",""]; 
var ary3 = ["","",""]; 
var ary4 = ["","",""]; 
var div; 
for(var i=1; i<5; i++){ 
    div += ("<p id='text'"+i+">"+(ary+i)[0]+"</p>"); 
} 

只是尋找一個更好的解決方案,使其工作。沒有從ary1,ary2,ary3和ary4獲得價值。

+1

'(ary + i)'拋出錯誤。 –

+0

這是一個非常常見的問題。我鏈接到一個最近類似的,但如果其他用戶有更好的鏈接,不要猶豫,讓他們... –

+0

它看起來像你試圖做一些手動寫出HTML。你如何告訴我們你想要做什麼? – Codeman

回答

3

如果你想以這種方式引用不同的數組,將它們存儲在一個對象中將是一個非常優雅的解決方案。

var arrayDictionary = { 
    ary1: ["","",""], 
    ary2: ["","",""], 
    ary3: ["","",""], 
    ary4: ["","",""] 
}; 
for(var i=1; i<5; i++){ 
    div += ("<p id='text'"+i+">"+ arrayDictionary["ary"+i][0]+"</p>"); 
} 
0
var ary1 = ["","",""]; 
var ary2 = ["","",""]; 
var ary3 = ["","",""]; 
var ary4 = ["","",""]; 
var div; 
for(var i=1; i<5; i++){ 
    div += ("<p id='text'"+i+">"+eval('ary'+i '[0]')+"</p>"); 
} 
+2

請謹慎使用'eval',因爲它可能是危險的並且通常效率低下(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) – stinkycheeseman

+0

你能解釋爲什麼它可能是危險的和低效的? –

+0

當然可以! [這裏是一個簡明的解釋](http://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea) - [這裏是解釋它如何可以正確使用](http://www.nczonline.net/blog/2013/06/25/eval-isnt-evil-just-misunderstood/) - [在這裏你可以閱讀它是如何瘋狂](http:///wingolog.org/archives/2012/01/12/javascript-eval-considered-crazy) – stinkycheeseman

0

嘗試數組的數組:

ary = [ 
    ["","",""], 
    ["","",""], 
    ["","",""], 
    ["","",""] 
]; 

var div = ''; 
for (var i = 0, len = ary.length; i < len; i++) { 
    div += "<p id='text'" + i + ">" + ary[i][0] + "</p>"; 
} 
+0

我意識到你的指數將從1 - 4變爲0 - 3。希望這不是什麼大不了的事情。 – bozdoz

0

爲什麼不使用二維數組?

arr=[ary1,ary2,ary3,ary4,ary5]; 

for(var i=1; i<arr.legnth; i++){ 
    for (var j=1;j<arr[i].length;j++){ 
    div += ("<p id='text'"+j+">"+arr[i][j]+"</p>"); 
    } 
}