2017-04-25 6 views
1

이 느낌 그것을 작동시키지 못한다. 나는 facts.groupAll()을 시도했다. var facts = crossfilter (data); 그리고 나는 all.reduce()를 시도했습니다. var all = facts.groupAll(). 난 괄호없이 시도하고 봤어 예를 들어. 누구든지 실제 예제를 알고 있습니까? 내 모든 행에서 단일 출력을 원합니다.dc.js를, crossfilter 쉽게해야처럼 실행이 groupAll()에서() 감소는

내 축소 기능이 완전하지 않고 복잡해 보입니다. 치수를 줄이면 잘 작동하지만 사실에 대해서는 groupAll에 대해 정의되지 않은 값을 제공합니다.

덕분에 여기

var accumGrp = facts.groupAll().reduce(
    function(p,v) { 
     for (var i=0; i<supplierFields[0].length; i++) { 
     if (!p.population[supplierFields[0][i]]) { p.population[supplierFields[0][i]] = []; } 
     p.population[supplierFields[0][i]].push(v[supplierFields[0][i]+'_l']); 
     } 
     return p; 
    }, 
    function(p,v) { return p; }, 
    function() { 
     var obj = {}; 
     obj.population = {}; 
     obj.highlight = {}; 
     return obj; 
    } 
); 

    print_filter('accumGrp'); 

답변

1

기본적인 문제는, 당신은 쿼리 할 때 일반 그룹이 정의 또는 데이터로드시 집계를 계산하는 반면 당신이 그룹의 집계를 실행하기 위해 groupAll.value()를 호출 할 필요가 아마 group.top 또는 group.all입니다.

기본 접근법이 정확하고 다른 점은 무엇입니까? print_filter이 무엇인지 알 수 없으므로 스크립트가 끝나면 console.log(accumGrp.value())을 호출하여 작동하는지 확인해보십시오.

하지 않으면, 여기에 참조로 짧은 작업 예입니다

var data = [1,2,3,4] 

var cf = crossfilter(data) 
var grp = cf.groupAll().reduce(
    function(p, d) { return p + d }, 
    function(p, d) { return p - d }, 
    function() { return 0 } 
) 

console.log(grp.value()) 

10를 인쇄합니다. 그리고 여기에 일을 시도 할 수있는 JSFiddle이 있습니다 (무슨 일이 일어나는지 살펴 보는 데 도움이되는 몇 가지 콘솔 명령문이 있습니다) : https://jsfiddle.net/esjewett/39xgn5ah/1/