2013-09-23 2 views
0

JSON 파일을 반복하는 두 개의 루프에 다음 함수가 있습니다. 내가 겪고있는 문제는 barFactory 함수에서 호출 된 두 번째 루프에서 배열의 마지막 항목 만 반환합니다. 이 문제를 해결하려면 각 반복마다 차트 개체를 호출하여 내 논리에 따라 진행해서는 안됩니다.JavaScript for 루프는 배열의 마지막 항목 만 반환합니다.

var looper = function(sec0, vz, lOrR) { 

    $('#' + lOrR + 'Title').text(sec0); 

    for (var i = 0; i < vz[0]['Areas'].length; i++) { 
     var tText = Object.keys(vz[0]['Areas'][i]); 
     var root = vz[0]['Areas'][i][tText][0]; 
     barFactory(root, sec0, lOrR, i, tText); 

    } 

    function barFactory(sec1, sec0, lOrR, i, tText) { 
     var dataName; 

     for (var j = 0; j < sec1[sec0].length; j++) { 
      charts.title.text = sec1[sec0][j]["Label"]; 
      dataName = sec1[sec0][j]['Metrics'][5]['Rep Res. %'].slice(0, -1); 
      charts.series[0].name = dataName; 
      charts.series[0].data = [parseFloat(dataName)]; 
      chart = new Highcharts.Chart(charts); 
     } 
    } 
} 
+2

따라서 'Areas' 배열의 각 항목에 대해 새로운 하이 차트를 만들려고합니다. 차트로 무엇을하려합니까? 그것을 반환하거나 DOM에 추가하는 것으로 나타나지 않습니다. –

+0

DOM에 추가하는 부분을 포함하지 않은 별도의 섹션이 있습니다. 막 대형 차트를 그립니다 만 배열의 마지막 만 그립니다. – Claude

+1

그것은 "돌아 오는"것이 아닙니다. 더 많은 정보없이 작동하는 방법이 명확하지 않습니다. '차트 '는 항상 같은 것을 말합니다. –

답변

0

몇 가지 : 이 - 바바라 말했듯이, 우리는 당신이 renderTo 매개 변수 변화하고 있음을 볼 수 없습니다 - 당신은 몇 가지 오류를 일으킬 수 있습니다 차트 생성을 위해 동일한 개체를 사용하는

무엇 내가 할 방법을 권장합니다

또한
var dataName = dataName = sec1[sec0][j]['Metrics'][5]['Rep Res. %'].slice(0, -1); 
chart = new Highcharts.Chart(
    Highcharts.merge(charts, { 
     chart: { 
      renderTo: new_container_variable 
     }, 
     title: { 
      text: sec1[sec0][j]["Label"] 
     }, 
     series: [{ 
      data: [parseFloat(dataName)], 
      name: dataName 
     }] 
    }) 
); 

, AER 당신이 있는지 : dataName = sec1[sec0][j]['Metrics'][5]['Rep Res. %'].slice(0, -1);-sec1 후 경로가 올바른 일입니까? console.log(dataName);으로 가서 적절한 값을 전달했는지 확인하십시오. Highcharts가 잘못된 것을 만듭니다.

관련 문제