2016-10-25 2 views
0

본인의 기능에 문제가 있습니다. calculateTaxRate (10000, "joint")를 입력하면 10 %의 정답을주지 못합니다. 그것은 "회계사에게 전화하는 것이 더 낫습니다"라고 대답합니다. 왜 아직도 일어나고 있는지 나는 확신 할 수 없다. 이것에 대해 설명해 주시면 큰 도움이 될 것입니다.세금 기능 관련 문제 (/ 기타 문의 경우)

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

'상태 == ("하나"|| "공동") ' 당신이 생각하는 것을하지 않습니다 - 당신은 자바 스크립트 문법을 배워야합니다 - 그것은 무효가 아니지만 기본적으로'if status! == "single"'만 확인하고 있습니다 –

답변

2

코드 ("single" || "joint")은 "단일"로 평가됩니다.

expr1 || expr2으로 표시된 OR 조건은 true로 변환 될 수 있으면 expr1을 반환합니다. 그렇지 않으면 expr2를 리턴합니다. 예를 들어 :

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

은 IF 조건은 다음과 같이 작성해야합니다!

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

참조 모질라 개발자 문서