2014-10-08 49 views
3

有人請幫我解決一個警告在咕嚕聲。 我在我的項目中使用休耕條件,我得到一個警告, 塊嵌套得太深< 5>。如何擺脫嵌套太深的塊,同時使用grunt使用jshint?

var chartGuideLines = function() { 
    var chartid = $scope.chart.panel.id; 
    var chartTitle = $scope.confdata.prop.chartsarray; 
    for(var i = 0; i< chartTitle.length; i++) { 
     var chartslength = chartTitle[i]; 
     var chartsId = chartslength.id; 
     if(chartsId === chartid){ 
      for(var j = 0; j < chartslength.charts.length; j++) { 
       var chartsdata = chartslength.charts[j]; 
       var guidlines = chartsdata.guideliney; 
       if(typeof guidlines !== 'undefined') { 
        var guidlineY = $scope.chart.targetNode.getElementsByClassName('guideline-y'); 
        for (var ii=0; ii<guidlineY.length; ii++) { 
         guidlineY[ii].style.strokeDasharray = guidlines.stroke; 
        } 
       } 
      } 
     } 
    } 
}; 

在此先感謝。

+0

這只是一個警告。這對你來說真的是個問題嗎?雖然當你將事物深深地嵌套在一起時,肯定會有一種「代碼味道」,暗示某些重構可能是有序的,在你的情況下,如果不理解它打算做的代碼是什麼,重構三重嵌套似乎很困難以合乎邏輯的方式循環。 – 2014-10-08 16:30:50

+0

@Mike Brant,這不是我可以做的一個問題 - 只是爲了知道使用reduce循環的任何選項。 – kumark 2014-10-08 16:44:22

+0

你可以做一些事情,比如將這些循環的每個級別分解成一個單獨的函數調用,但是在你的情況下,我認爲這實際上會讓代碼更難理解/維護。 – 2014-10-08 17:16:07

回答

7

只需在函數啓動之前添加以下句子。

// jshint maxdepth:5