动态访问Array值

时间:2011-04-14 17:12:00

标签: javascript arrays

我有这种格式的数组。

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

addRow是一个获取此值进程的函数。但是我不想给出数组索引,而是我想给出rowData [i],然后放入循环并访问元素。

rowData保存addRow返回的对象。

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

4 个答案:

答案 0 :(得分: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 :(得分:1)

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

答案 2 :(得分:1)

你是说这个意思吗?

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

用于循环访问

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

答案 3 :(得分: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我之前提到过这个问题。