为什么我的代码给我这个预期的[Array(9)]与[Array(11)]错误完全相等

时间:2019-02-28 21:27:34

标签: javascript

am尝试编写一个给定两个数字X和Y的代码,编写一个函数: 1返回X和Y之间的偶数,如果X大于Y,否则返回x和y之间的奇数,已经使用了我知道的每个组合来测试它们是否有效,但是仍然给我期望[Array(9)]完全相等[Array(11)]错误

const number_game = (x, y) => {
  let numArray = [];

  if (x > y) {
    for (i = y + 1; i < x; i++) {
      if (i % 2 === 0) {
        numArray.push(i);
      }
    }
    return numArray;
  } else if (x > 1) {
    for (i = x; i < y; i++) {
      if (i % 2 !== 0) {
        numArray.push(i);
      }
    }
    return numArray;
  } else if (x < y || x === y) {
    for (i = x + 2; i < y; i++) {
      if (i % 2 !== 0) {
        numArray.push(i);
      }
    }
    return numArray;
  }
};

console.log(number_game(12, 0));
console.log(number_game(0, 12));

1 个答案:

答案 0 :(得分:0)

x > 1情况下,您是从i开始的,但规范指出,您只应返回{em> X和{ {1}},不包括它们。

Y情况下,您是从x < y || x == y开始的。如果x+2是一个奇数,则不包括在内。我认为,如果您认为x+1应该跳过x = 0, y = 12,那么您肯定会误解问题陈述。

没有理由以不同的方式对待这些案件。而1应该只返回一个空数组的情况是特殊情况。

x == y