2012-07-26 97 views
-5

是否可以創建一個對象數組?我想知道這一點,因爲我正在開發一個iPad網站,其中有一堆字段需要在iPad上滾動。Javascript/jQuery對象數組?

當然,iPad/Safari必須走並讓事情變得困難,而不是使用overflow-x/y選項來允許滾動條。那麼,是什麼我希望做的是創造iScroll對象的數組,因爲有大量的需要被創造的東西,我寧願不做:

var myScroll = new iScroll(); 
var myScroll = new iScroll(); 

等等

我會希望做的是有某種類似循環:

var arrayOfObjects=new Array(); 
for(var i=0; i < numFields; i++) 
{ 
    var temp = new iScroll(); 
    arrayOfObjects.push(temp); 
} 

那麼,這樣的事情是可行的?

+1

你試過了嗎? – jbabey 2012-07-26 13:11:53

+0

是的,這是可能的,你的代碼應該在實現該工作 – Esailija 2012-07-26 13:12:00

回答

2

我想你發佈的代碼將正常工作。一些吹毛求疵:

var arrayOfObjects = []; // use this syntax instead of "new array" 
for (var i = 0; i < numFields; i++) { 
    arrayOfObjects.push(new iScroll()); // no reason for a temp var 
} 
0

是的,儘可能遠離你可以做到這一點。

我通常會說:

var myArray = [] 
var myArray[0] = new iScroll(); 
var myArray[1] = new iScroll(); 
var myArray[2] = new iScroll(); 
var myArray[3] = new iScroll(); 

但是,在一個循環做它應該工作一樣:)

+0

你可以說'var myArray = [new iScroll(),new iScroll(),new iScroll(),new iScroll()]' – Esailija 2012-07-26 13:12:49

+0

Yes,good point,just wanted儘管我會更新:) – LmC 2012-07-26 13:13:43

+0

我不認爲OP需要這個簡化,因爲他或她沒有我們的幫助提出了一個循環實現的正確語法。 (特別是當你有三個或更多元素時,循環實際上只有更少的代碼行......) – nnnnnn 2012-07-26 13:16:24

2

var arrayOfObjects=new Array(); 
for(var i=0; i < 10; i++) 
{ 
    var temp = new Object(); 
    arrayOfObjects.push(temp); 
} 

以上代碼生成:對象,對象,對象,...]對於arrayOfObjects

+0

非常棒!我希望它能工作,但我不確定。 – user1470118 2012-07-26 13:17:50

+0

所以這個答案只是重申了OP的代碼,但使用Object而不是'iScroll'? – nnnnnn 2012-07-26 13:19:18

+0

測試腳本的好方法是在Chrome中點擊Ctrl + Shift + J並將代碼粘貼到控制檯窗口中。這是一個方便的JS REPL。至少這就是我所做的。 – 2012-07-26 13:19:20

1

你要什麼的值,可以通過jQuery.map()這樣實現:

var arrayObjects = $.map(Array(numFields), function(){ return new iScroll(); }); 
+1

在這裏,我在思考(其他答案中沒有足夠的jQuery)。 +1,但我之前並沒有想過使用'.map()'這種方式。 – nnnnnn 2012-07-26 13:21:42