Есть ли лучший способ создать гистограмму со следующей структурой данных в extjs4?

#javascript #charts #extjs4

#javascript #Диаграммы #extjs4

Вопрос:

Итак, у меня есть следующая структура данных, возвращающаяся с моего сервера.

 {date:'2/1', name: 'product 1', count: 10}
{date:'2/1', name: 'product 2', count: 5}
{date:'2/1', name: 'product 3', count: 15}
{date:'2/2', name: 'product 1', count: 11}
{date:'2/2', name: 'product 2', count: 6}
 

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

 {date:'2/1', product_1: 10, product_2: 5, product_3: 15 }
{date:'2/2', product_1: 11, product_2: 6, product_3: 0}
 

Есть ли более элегантный способ решить эту проблему. У меня нет особого контроля над серверной частью вещей.

Ответ №1:

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

 var dates = {};
var dataOut = [];
Ext.Array.each(dataIn, function(item) {
  var dateObj = dates[item.date];
  if (!date) {
    dates[item.date] = dateObj = {dateObj: item.date};
    dataOut.push(dateObj);
  }
  dateObj[item.name] = item.count;
});
 

Я не думаю, что в Ext есть какие-либо вспомогательные классы для этого конкретного преобразования, и я не думаю, что система диаграмм может принимать разные форматы данных. Вы могли бы написать свой собственный Model , который ссылается на исходные данные, но я думаю, что это будет больше работы, чем приведенный выше код.