javascript - 为什么我的代码给了我这个预期的 [Array(9)] 以深深等于 [Array(11)] 错误
问题描述
我正在尝试编写一个代码给定两个数字 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));
解决方案
如果x > 1
您从 开始i
,但规范说您只应该返回 和 之间的数字,而不 包括它们。X
Y
在这种x < y || x == y
情况下,您从x+2
. 如果x+1
是奇数,则不包括它。x = 0, y = 12
如果您认为应该跳过,我认为您一定误解了问题陈述1
。
没有理由区别对待这些案件。而x == y
应该只返回一个空数组的情况,这是特例。
const number_game = (x, y) => {
let numArray = [];
if (x > y) {
for (i = y + 1; i < x; i++) {
if (i % 2 === 0) {
numArray.push(i);
}
}
} else if (x < y) {
for (i = x + 1; i < y; i++) {
if (i % 2 !== 0) {
numArray.push(i);
}
}
}
return numArray;
};
console.log(number_game(12, 0));
console.log(number_game(0, 12));
推荐阅读
- java - 使用 FFT/STFT 绘制频谱分析会导致伪影
- iphone - iPhone 与 Xcode/Mac 的连接失败或抖动
- database - SAP HANA 与 Oracle 9/10 和 Informix 11
- asp.net-mvc - 从 aspnet 控制器向下调用堆栈的异步等待
- python - 如何将python路径从anaconda更改为默认值
- html - 在 Flask 中创建一个下拉菜单并检索选定的选项
- python - Python Kivy-Buildozer APK 未安装 - 在 Android 10 上运行?
- database - 如何匹配具有相同模型的两列?
- android - 如何将有效负载列表发送到 RV 适配器?
- sql-server - Invoke-Sqlcmd -Verbose 的消息数据输出格式与直接写入输出文件的数据不同