2016-10-25 86 views
0

我的功能有問題。當我輸入calculateTaxRate(10000,「聯合」)時,它不會給我10%的正確答案。它正在返回「更好地致電會計師」。我不確定爲什麼還在發生。任何幫助向我解釋這一點將不勝感激。稅務功能問題(If/Else語句)

function calculateTaxRate(salary, status) { 
if (status !== ("single" || "joint") || (salary > 74900)) { 
    return "Better call an accountant"; 
} else if (status == "single") { 
    if (salary <= 9225) { 
     return "10%"; 
    } else if (9226 <= salary && salary <= 37450) { 
     return "15%"; 
    } else { 
     return "25%"; 
    } 
} 
if (status == "joint") { 
    if (0 <= salary && salary <= 18450) { 
     return "10%"; 
    } else if (18451 <= salary && salary <= $74, 900) { 
     return "15%"; 
    } 
} 
} 
+5

'狀態==( 「單」 || 「聯合」)'沒有做你的想法 - 你需要學習JavaScript語法 - 它不是無效的,但你基本上檢查'if status!==「single」'only –

回答

2

該代碼("single" || "joint")評估爲「單」。

如果的OR條件可以轉換爲true,則返回expr1;否則,返回expr2。例如:

true || false = true 
false || true = true 
"Single" || false = "Single" 
false || "Joint" = "Joint" 

如果條件應該寫成:

if ((status !== "single" && status !== "joint") || (salary > 74900)) { 

Logical Operators見Mozilla的開發者文檔