2017-06-14 93 views
0

我試過好幾個小時,但我不明白爲什麼return是不確定的...爲什麼使用參數返回函數未定義?

這是我的代碼:

var x = 30.858; 
var id = 584; 

var num_reg = region(x); 
if (num_reg == false) { 
    num_reg = ripeti_region(x); 
} 


function ripeti_region(lng) { 
    if (lng <= 180) { 
    lng = lng - 0.2; 
    } else if (lng => -180) { 
    lng = lng + 0.2; 
    } 

    if (region(lng) != false) { 
    var x = region(lng); 
    return x; 
    } else { 
    ripeti_region(lng); 
    } 
} 


function region(lng) { 
    if (lng <= 30.458) { 
    return id; 
    } else { 
    return false; 
    } 
} 


alert(num_reg); 

如果我提醒num_reg我已經不確定的回報,但代碼在事實上,在功能ripeti_region(lng)如果添加alert(x)它打印var id

所以我願意num_reg給像輸出var id值。

這是的jsfiddle: https://jsfiddle.net/nj4duw61/

+1

因爲功能不'return'在所有情況下... – Bergi

回答

2

你的問題是在這裏:

else { 
    ripeti_region(lng); 
    } 

這部分代碼不返回任何東西。

也許你想return ripeti_region(lng);

+0

但是當我運行「ripeti_region(LNG)」,它應該重複相同的功能,所以如果區域(LNG)!=虛假回報x – Borja