#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
, который ссылается на исходные данные, но я думаю, что это будет больше работы, чем приведенный выше код.