2014-11-29 4 views
0

Iam получение ошибки "too much recursion" на crossfilter.js Как исправить эту ошибку.Gettin crossfilter.js ошибка «слишком много рекурсии»

Здесь мои JavaScript коды (я даю данные из данных php.So не wrong.I думаю ошибка измерения):

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, цв 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; 

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

Так как я могу исправить ошибку thiis.

Спасибо за Помогает

+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.But Теперь я получаю «p undefined» в строке «return p.value.INSIDANS;» in mapChart – coder

+0

Разве это не должно быть p.value? –

Смежные вопросы