JavaScript实现月份季节判断时,如何让匹配不区分大小写?
解决月份不区分大小写匹配的问题
你的代码存在两个关键错误导致失效:
toLowerCase未执行函数调用:你写的const checkMonth = userMonth.toLowerCase只是把函数本身赋值给了checkMonth,并没有实际将输入转为小写,必须加上括号调用函数:userMonth.toLowerCase()。- 数组语法错误:
summer数组里的'august'.t是笔误,应该改为'august'。
修正后的完整代码
let userMonth = prompt('Enter the month: ') // 调用toLowerCase()将输入转为全小写 const checkMonth = userMonth.toLowerCase() const autumn = ['september', 'october', 'november'] const winter = ['december', 'january', 'february'] const spring = ['march', 'april', 'may'] const summer = ['june', 'july', 'august'] if(autumn.includes(checkMonth)){ console.log(`${userMonth} is in Autumn`) } else if (winter.includes(checkMonth)){ console.log(`${userMonth} is in Winter`) } else if (spring.includes(checkMonth)){ console.log(`${userMonth} is in Spring`) } else { console.log(`${userMonth} is in Summer`) }
进阶优化方案(可选)
如果想让代码逻辑更简洁易维护,可以用对象维护季节与月份的映射关系:
let userMonth = prompt('Enter the month: ') const lowerMonth = userMonth.toLowerCase() const seasonMap = { autumn: ['september', 'october', 'november'], winter: ['december', 'january', 'february'], spring: ['march', 'april', 'may'], summer: ['june', 'july', 'august'] } let targetSeason = 'Summer' for (const [seasonName, months] of Object.entries(seasonMap)) { if (months.includes(lowerMonth)) { // 首字母大写格式化季节名称 targetSeason = seasonName.charAt(0).toUpperCase() + seasonName.slice(1) break } } console.log(`${userMonth} is in ${targetSeason}`)
内容的提问来源于stack exchange,提问作者Allblue
相关产品推荐
相关产品推荐

