2015-05-17 3 views
0

У меня есть массив объектов, как аналогичные,Эффективный способ печати массива Javascript объектов?

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

Все объекты будут иметь то же свойство. Теперь я буду иметь, чтобы создать строку, аналогичную,

имявозраст
а 12
хуг 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

Вы можете, возможно, тянуть первый внутренний цикл

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

вне основного цикла. Вы должны проверить, что длина aData не равна нулю, а если нет, то вы используете первый объект в массиве для печати заголовков.

Еще одно усовершенствование - собрать все имена свойств из первого объекта вне основного цикла (так вы делаете это только один раз) и использовать эти имена для доступа к свойствам всех объектов после этого.

Я не уверен в фактическом приросте производительности, но вы можете попробовать его.

Смежные вопросы