2011-10-24 2 views
2

그래서 다음 데이터 구조가 내 서버에서 다시 발생합니다.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; 
}); 

나는 내선의 모든 헬퍼 클래스는이 특정 변환에 있다고 생각하지 않는다, 나는 차트 시스템은 서로 다른 데이터 형식을 받아 들일 수 있다고 생각하지 않습니다. 원래 데이터를 참조하는 자신의 Model을 작성할 수는 있지만 위 코드보다 더 많은 작업이 될 것이라고 생각합니다.