打印Javascript对象数组的有效方法是什么?

时间:2015-05-17 07:49:28

标签: javascript arrays

我有一个类似的对象数组,

var aData = [{"name":"abc","age":12},{"name":"xyz","age":20}];

所有对象都具有相同的属性。现在我必须创建一个类似于

的字符串

名称 年龄
  abc 12
  xyz 20

我能够通过以下方式实现这一目标,

for(i=0;i<aData.length;i++){

  // Loop for printing the heading
  if(i==0){      
     for(key in aData[i]){
       outputString += key + "\t"; 
      }
     outputString += "\n";
  }

  //Lopp for printing the values 
  for(key in aData[i]){
     outputString += aData[i].key + "\t";
  }
  outputString += "\n";
}

上述实现对我来说很好,但我试图找出是否有最佳方法。在我的例子中,数组大小取决于数据库返回的值,这可能是巨大的。我觉得我正在使用额外的循环以及每次迭代都要检查的if条件。

1 个答案:

答案 0 :(得分:1)

你可以拉第一个内环

 for(key in aData[i]){
   outputString += key + "\t"; 
  }
 outputString += "\n";

在主循环之外。您必须检查aData的长度是否为零,如果不是,则使用数组中的第一个对象来打印标题。

另一个改进是从主循环外的第一个对象收集所有属性名称(所以你只做一次)并使用这些名称来访问所有对象的属性。

我不确定实际的性能提升,但你可以尝试一下。