如何编写JavaScript函数返回对应星期,参数超出1-7范围返回null
问题原因梳理
- 第一版代码错误点:
- 定义星期集合时错误使用圆括号而非数组方括号,JS逗号运算符会直接返回最后一个字符串
Sunday,根本没有生成存储所有星期的数组 - 错误对数字类型的入参
day取length属性,循环逻辑完全不生效
- 定义星期集合时错误使用圆括号而非数组方括号,JS逗号运算符会直接返回最后一个字符串
- 第二版代码错误点:
- 范围判断的主体写错了,你写的
returnDay是函数本身,应该判断入参day - 范围判断的逻辑运算符用错,一个数字不可能同时满足「小于等于0」且「大于等于8」,应该用或运算符
|| - 不符合范围的条件不触发时,会直接取
dayOfWeek[day-1],入参为0时就是取数组索引-1,JS数组不存在负索引自然返回undefined
- 范围判断的主体写错了,你写的
正确实现代码
function returnDay(day) { const dayOfWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; // 判断入参是否在1-7的合法范围 if (day < 1 || day > 7) { return null; } return dayOfWeek[day - 1]; }
测试效果
console.log(returnDay(1)) // 输出 "Monday" console.log(returnDay(7)) // 输出 "Sunday" console.log(returnDay(0)) // 输出 null console.log(returnDay(8)) // 输出 null
内容的提问来源于stack exchange,提问作者Ren
相关产品推荐
相关产品推荐

