我需要用给定的两个数字来编写一个函数,' isEitherEvenOrAreBoth7'返回它们中的至少一个是否是偶数,或者它们都是7。
到目前为止,这是我的代码:
function isEitherEvenOrAreBoth7(num1, num2) {
if(num1 || num2 % 2 === 0) || (num1 && num2 === 7) {
return true;
} else {
return false;
}
}
var output = isEitherEvenOrAreBoth7(3, 7);
console.log(output); // --> MUST RETURN false
var output = isEitherEvenOrAreBoth7(2, 3);
console.log(output); // --> MUST RETRUN true
出于某种原因,我的输出都返回' true'这是不对的。 你能看出我的错误吗?
答案 0 :(得分:2)
function isEitherEvenOrAreBoth7(num1, num2) {
return (num1 % 2 === 0 || num2 % 2 === 0) || (num1 === 7 && num2 === 7)
}
您需要单独对两个数字执行逻辑检查,而不是num1 || num2 is even
答案 1 :(得分:0)
if(num1 || num2 % 2 === 0) || (num1 && num2 === 7)
这不符合你的想法。 我假设在写这个问题时丢失的parens是错误的。
num1 || num2 % 2 === 0
相当于num1 == true || num2 % 2 === 0
同样的原则适用于
num1 && num2 === 7
可以写成num1 == true && num2 === 7
使用原始检查,只要num1不为0,该函数返回true。
答案 2 :(得分:-1)
您可以用简单的方式编写
function isEitherEvenOrAreBoth7(num1, num2){
if(!num1){
return false;
}
if(!num2){
return false;
}
if(num1 == 7 && num2 == 7){
return true;
}
if(num1 % 2 === 0 && num2 % 2 === 0){
return true;
}
return false;
}