2011-04-14 79 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我之前就该主题提出过。