React项目中选择下拉框指定值后for循环不生效是什么原因
问题成因
你遇到的问题核心是变量类型不匹配:从下拉框获取的startDate和endDate为字符串类型,循环判断时执行的是字符串字典序比较,而非数值大小比较,最终导致判断逻辑不符合预期。
对应现象解释
- 选择from为9、to为10时:获取到的两个值为字符串
"9"和"10",字典序比较中"9"的首字符ASCII码远大于"10"的首字符"1",因此"9" <= "10"判断结果为false,循环直接不执行,无控制台输出。 - 两个下拉框都选9时:字符串
"9"和"9"相等,判断成立,循环执行1次,输出正常。 - 选择from为10、to为11时:两个字符串首字符都是
"1",第二位"0"小于等于"1",判断成立,循环正常执行。 - 选择from为9、to为11时:同样首字符
"9"大于"11"的首字符"1",判断不成立,循环不执行。
解决方法
在获取下拉框值后,先将其转换为数字类型再赋值给startDate和endDate即可,转换示例:
// 两种常用转换方式二选一即可 const startDate = Number(你的from下拉框取值逻辑); const endDate = +你的to下拉框取值逻辑;
内容的提问来源于stack exchange,提问作者The KNVB
相关产品推荐
相关产品推荐

