检查输入是否为偶数或两者都是数字

时间:2017-05-27 00:05:12

标签: javascript

我需要用给定的两个数字来编写一个函数,' 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'这是不对的。 你能看出我的错误吗?

3 个答案:

答案 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;
}