Обычное дело, бэкенд на запрос отдает JSON массив объектов c идентичными ключами (но разными значениями):
[
{key1:value1,...,keyN: valueN},
{key1:valueA1,...,keyN: valueAN},
... ... ... ... ...
]
Есть ли резон для уменьшения оверхеда, преобразовывать такой массив в объект вида:
{
headers:[key1, key2,...,keyN],
rows:[
[value1, value2,...,valueN],
[valueA1, valueA2,...,valueAN],
....
]
}
На первый взгляд просится такое решение, но может быть есть что получше?
ourArray.reduce(function(obj, el){
var row = [];
for (var key in el){
if (obj.headers.indexOf(key) === -1)
obj.headers.push(key);
row.push(el[key]);
}
obj.rows.push(row);
return obj;
},
{ headers:[], rows:[] }
)