2014-12-03 42 views
-3

這裏是我的代碼:在使用多個return語句for循環

var looptimesfrarray_TEST = reversegridarrayFORUNDEFINE(st_time_formated_TEST); 

for (var c = 0; c < obj.length - 1; c++) { 
    if (looptimesfrarray_TEST[c] === undefined) { 
     var mycharttime = Highcharts.dateFormat('%H:%M:%P', this.value); 
     return timsesubstringforXaxis(mycharttime); 
    } else { 
     return timsesubstringforgrid(looptimesfrarray_TEST[c]); 
    } 
} 

我想返回返回在for循環基礎上,if/else多個結果,但我c沒有在增加循環,所以它每次給我c = 0。我試圖用breakcontinue,但他們沒有工作。我怎樣才能做到這一點?

+8

'return'立即打破了功能。 – Scimonster 2014-12-03 20:27:46

回答

3

從函數返回結束該函數的執行。這意味着「我有結果!我完成了!」。

每次你周圍的循環,你要麼返回,或者返回去。

所以函數被退出你第一次去周圍的循環,不管是什麼。

如果你想遍歷所有的值,那麼你需要在循環完成後返回。通常你會想要在變量中收集數據,然後返回變量。

0

@Quentin已經給出解釋,我只是顯示的代碼,你怎麼可能收集在陣列中的每個元素中的所有結果,並從一個函數返回數組:

var res = []; 
var looptimesfrarray_TEST = reversegridarrayFORUNDEFINE(st_time_formated_TEST); 
    for (var c = 0; c < obj.length - 1; c++) { 
    if (looptimesfrarray_TEST[c] === undefined) { 

    var mycharttime = Highcharts.dateFormat('%H:%M:%P', this.value); 

    res.push(timsesubstringforXaxis(mycharttime)); 

    } 
    else { 

    res.push(timsesubstringforgrid(looptimesfrarray_TEST[c])); 


    } 
} 
return res;