Несмотря на то, что код написан не оптимально, ваш код, по сути, в порядке, за исключением того, что он содержит большее число в результате.Вы пропускаете меньшее число с помощью теста if (i > y)
, хотя было бы проще просто начать цикл с y + 1
.
Чтобы исключить более высокое число, просто измените критерии повторения с <=
<
.
Было бы также проще выполнить четный или нечетный тест в этих циклах.
function number_game(x, y) {
let numbers = [];
if (x > y) {
for (let i = y + 1; i < x; i++) {
if (i % 2 == 0) {
numbers.push(i);
}
}
} else {
for (let i = x + 1; i < y; i++) {
if (i % 2 == 1) {
numbers.push(i);
}
}
}
return numbers;
}
console.log(number_game(12, 0));
console.log(number_game(2, 12));
console.log(number_game(0, 0));
console.log(number_game(3, 13));
console.log(number_game(1, 1));