2017-06-22 68 views
0

在我的計劃中有些地方我用支票保存腳本,如果數據不匹配:如何使用return;與功能

const a = 1; 
//... 
//... 
if (param1 != 1 && param2 != 3) { 
    return; // stop script 
} 
//... 
//... 
if (param1 != 1 && param2 != 3) { 
    return; // stop script 
} 
//... 
//... 

所以我創建功能:

function checkIfOk(param1, param2) 
{ 
    if (param1 != 1 && param2 != 3) { 
     return; // stop script 
    } 
} 

但現在:

const a = 1; 
//... 
//... 
checkIfOk(param1, param2); 
//... 
//... 
checkIfOk(param1, param2); 
//... 
//... 

不會在錯誤時暫停功能。

const a = 1; 
//... 
//... 
return checkIfOk(param1, param2); 
//... 
//... 
return checkIfOk(param1, param2); 
//... 
//... 

這會在任何情況下停止該功能。

我不想使用拋出錯誤,因爲我在函數中使用它,所以程序仍然應該運行。

+1

你不能從checkIfOk返回值,所以你以後不能再返回這個值。我想你需要修改你的邏輯來返回布爾值。 – ManoDestra

回答

0

這裏實現你想要什麼更快的方法:

function checkIfOk(param1, param2) { 
    return (param1 != 1 && param2 != 3); 
} 

if (checkIfOk(param1, param2)) 
    return; 

我想語義應該是checkIfNotOk(),但呃...

+0

返回語句中不需要使用圓括號。順便說一句,它應該是'ifNotOk' –

+0

@NinaScholz我知道,它只是使它更容易閱讀。 **更新**顯然你在答案結尾沒有閱讀我提到的語義。 –

+0

是的,這也是一種選擇,但我認爲該功能比當前示例更復雜 – Julian

0

你需要返回一個值(例如falsetrue),只有停止例如返回false

時如

function checkIfOk(param1, param2) 
{ 
    if (param1 != 1 && param2 != 3) { 
     return false; // stop script 
    } 
    return true; // OK!! 
} 

if(!checkIfOk(param1, param2)) 
    return; //only return if checkIfOk returns false 
+0

哦,這就是他的意思...... –

+0

'return!(param1!= 1 && param2!= 3)' –

+0

是的,這也是一個選項,但我認爲該函數比當前示例更復雜 – Julian