2011-04-14 80 views
0

我有這種格式的數組。訪問數組值動態

rowData[0] = addRow(aa);   
rowData[1] = addRow(aaa);   
rowData[2] = addRow(aa);   
rowData[3] = addRow(aa);  

addRow是得到這個值process.But我不想給數組的索引功能,相反,我想給rowData [我],然後放在一個循環,並訪問元素。

rowData保持其addRow返回的對象。

var data = [rowData]; 
var table = Ti.UI.createTableView({ 
     data:data 
}); 

回答

2

使用的Array.push函數來存儲數據:

rowData.push(addRow(aa)); 
rowData.push(addRow(aaa)); 
. 
. 
. 
. 
. 

另一種方法是:

rowData[rowData.length] = addRow(aa); 
rowData[rowData.length] = addRow(aaa); 
. 
. 
. 
. 
. 

使用常規的基於索引的迭代來獲得數據:

for(var i=0; i< rowData.length; i++){ 
    var curItem = rowData[i]; 
} 
1
for (var i = 0; i < rowData.length; i++) 
{ 
    rowData[i] = addRow(aa); 
} 
+0

那麼其他函數怎麼樣... – theJava 2011-04-14 17:16:14

+0

你不清楚'addRow(aa)'和'addRow(aaa)'之間的區別以及它與數組索引之間的區別...... – 2011-04-14 17:17:49

1

沒有ü意味着這個?

var rowData = {}; 
rowData[aa] = addRow(aa); 
rowData[aaa] = addRow(aaa); 

for循環訪問

for(var index in rowData){ 
    var data = rowData[index] 
    ... 
} 
1

一個循環可能不會在你的情況下是可行的。這可能是一個想法:你可以重寫的Array.push原型方法:

Array.prototype._push = Array.prototype.push; 
Array.prototype.push = function(val){ this._push(val); return this;}; 

在這之後,你可以鏈中的推操作:

rowData.push(addRow(aa)) 
     .push(addRow(aaa))   
     .push(addRow(aa))   
     .push(addRow(aa)); 

但實際上,它看起來像你的混合陣列對象。 Here's an answer我之前就該主題提出過。