我的功能有问题。当我输入calculateTaxRate(10000,“联合”)时,它没有给出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%";
}
}
}发布于 2016-10-26 07:22:08
代码("single" || "joint")的计算结果为"single“。
如果可以转换为true,则编写为expr1 || expr2的OR条件将返回expr1;否则,将返回expr2。例如:
true || false = true
false || true = true
"Single" || false = "Single"
false || "Joint" = "Joint"IF条件应该写成:
if ((status !== "single" && status !== "joint") || (salary > 74900)) {请参阅Logical Operators上的Mozilla开发人员文档
https://stackoverflow.com/questions/40251214
复制相似问题