2014-11-29 4 views
0

crossfilter.js에 "too much recursion" 오류가 발생했습니다 어떻게이 오류를 해결할 수 있습니까?crossfilter.js 오류 "너무 많은 재귀"오류

다음

내 자바 스크립트 코드 (I 치수 오차를 생각 틀렸다는되지 php.So 데이터에서 데이터를주고있다) :

var data= [{ 
      HASTANE: 'ANK', 
      SEHIR: 'Ankara', 
      BOLGE: 'İç Anadolu Bölgesi ', 
      KOD: 'C00', 
      KODACIKLAMA: 'Dudağın habis neoplazması', 
      KURUM: 'Devlet' , 
      DONEM: 'OCAK 2014', 
      SAYI: 2, 
      INSIDANS:2 
     },{ 
      HASTANE: 'TKD', 
      SEHIR: 'Tekirdağ', 
      BOLGE: 'Marmara Bölgesi ', 
      KOD: 'C00', 
      KODACIKLAMA: 'Dudağın habis neoplazması', 
      KURUM: 'Devlet' , 
      DONEM: 'OCAK 2014', 
      SAYI: 1, 
      INSIDANS:1 
     },{ 
      HASTANE: 'ADN', 
      SEHIR: 'Adana', 
      BOLGE: 'Akdeniz Bölgesi', 
      KOD: 'C00', 
      KODACIKLAMA: 'Dudağın habis neoplazması', 
      KURUM: 'Devlet' , 
      DONEM: 'OCAK 2014', 
      SAYI: 1, 
      INSIDANS:1 
     },{ 
      HASTANE: 'ESKYM', 
      SEHIR: 'Eskişehir', 
      BOLGE: 'İç Anadolu Bölgesi ', 
      KOD: 'C00', 
      KODACIKLAMA: 'Dudağın habis neoplazması', 
      KURUM: 'Devlet' , 
      DONEM: 'OCAK 2014', 
      SAYI: 1, 
      INSIDANS:1 
     },{ 
      HASTANE: 'IST', 
      SEHIR: 'İstanbul', 
      BOLGE: 'Marmara Bölgesi ', 
      KOD: 'C00', 
      KODACIKLAMA: 'Dudağın habis neoplazması', 
      KURUM: 'Devlet' , 
      DONEM: 'OCAK 2014', 
      SAYI: 2, 
      INSIDANS:2 
     }] 

var mapChart = dc.bubbleOverlay("#map").svg(d3.select("#map svg")); 
var donemRowMapChart = dc.rowChart("#donem-map-chart"); 
var bolgeRowMapChart = dc.rowChart("#bolge-map-chart"); 


     var d= [data]; 
     var data = crossfilter(d); 

     var sehir=data.dimension(function(d){return d.SEHIR;}); 
     var donem=data.dimension(function(d){return d.DONEMADI;}); 
     var bolge=data.dimension(function(d){return d.BOLGE;}); 

     var sehirGroup=sehir.group().reduceSum(function(d){return d.INSIDANS}); 
     var donemGroup=donem.group().reduceSum(function(d){return d.INSIDANS}); 
     var bolgeGroup=bolge.group().reduceSum(function(d){return d.INSIDANS}); 

     mapChart.width(600) 
       .height(450) 
       .dimension(sehir) 
       .group(sehirGroup) 
       .radiusValueAccessor(function(p) { 
        return p.value; 
       }) 
       .r(d3.scale.linear().domain([0, 200000])) 
       .colors(["#ff7373","#ff4040","#ff0000","#bf3030","#a60000"]) 
       .colorDomain([13, 30]) 
       .colorAccessor(function(p) { 
        return p.value; 
       }) 
       .title(function(d) { 
        return "City: " + d.key 
          + "\nINSIDANS SAYISI: " +d.value; 
       }) 
       .point("TR.GA", 364, 400) 
       .point("TR.ED", 395.5, 383) 
       .debug(false); 

donemRowMapChart 
       .width(300) 
       .height(200) 
       .margins({top: 5, left: 10, right: 10, bottom: 20}) 
       .dimension(donem) 
       .group(donemGroup) 
       .colors(d3.scale.category10()) 
       .elasticX(true) 
       .xAxis().ticks(4); 

bolgeRowMapChart 
       .width(300) 
       .height(200) 
       .margins({top: 5, left: 10, right: 10, bottom: 20}) 
       .dimension(bolge) 
       .group(bolgeGroup) 
       .colors(d3.scale.category10()) 
       .elasticX(true) 
       .xAxis().ticks(4);        

    dc.renderAll(); 

오류 라인 178에 상승, COL 4 crossfilter.js :

function quicksort(a, lo, hi) { 
    // Compute the two pivots by looking at 5 elements. 
    var sixth = (hi - lo)/6 | 0, 
     i1 = lo + sixth, 
     i5 = hi - 1 - sixth, 
     i3 = lo + hi - 1 >> 1, // The midpoint. 
     i2 = i3 - sixth, 
     i4 = i3 + sixth; 

........................} 

그래서 어떻게하면이 오류를 해결할 수 있습니까? 나는 자연스럽게 정렬되지 않는 차원이있을 때

감사

+0

데이터를 표시하십시오. 또한 어떤 코드가 오류를 발생시키고 있습니까? – Mark

+0

나는 질문을 업데이트했다. 다시 보아라. – coder

답변

2

데 도움을줍니다 위해 보통이 나에게 발생합니다. 일반적으로 측정 기준을 만드는 데 사용하는 값을 전송하려고합니다. 특히 DONEMADI는 샘플 데이터에 나타나지 않으므로 많은 데이터 객체의 속성이 아닐 수도 있습니다. 코드를

var sehir=data.dimension(function(d){return "" + d.SEHIR;}); 
var donem=data.dimension(function(d){return "" + d.DONEMADI;}); 
var bolge=data.dimension(function(d){return "" + d.BOLGE;}); 

var sehirGroup=sehir.group().reduceSum(function(d){return +d.INSIDANS}); 
var donemGroup=donem.group().reduceSum(function(d){return +d.INSIDANS}); 
var bolgeGroup=bolge.group().reduceSum(function(d){return +d.INSIDANS}); 

으로 변경하겠습니까? 이렇게하면 문제가 계속 발생합니까?

+0

예. 나는 DONEMADI를 놓쳤다. DONEM.으로 바뀌었다. 그러나 이제는 "p가 정의되지 않았다." "return p.value.INSIDANS;" in mapChart – coder

+0

단지 p.value가 아니어야합니까? –