You need to enable JavaScript to run this app. JS中for循环不遍历对象数组,校验用户名密码始终返回false问题排查
优惠活动
大模型
产品
解决方案
定价
更多

JS中for循环不遍历对象数组,校验用户名密码始终返回false问题排查

问题原因

核心错误是对象属性名大小写不匹配:

  • 你定义的dataBase中,所有对象的密码字段名是全小写的password
  • 但校验判断语句中,你读取的是dataBase[i].passWord(W为大写格式),这个属性在数据库对象中不存在,读取结果永远是undefined,和传入的passWord比对永远不成立,所以函数始终返回false。

修复方案

把判断语句中的属性名改为和定义一致的小写即可:

// 修改前(错误)
if (dataBase[i].username === userName && dataBase[i].passWord === passWord)
// 修改后(正确)
if (dataBase[i].username === userName && dataBase[i].password === passWord)

拓展提示

  • JavaScript的属性名是大小写敏感的,书写时要严格保持一致
  • 调试这类问题可以在循环中打印dataBase[i]、dataBase[i].passWord的值,很快就能定位到属性读取失败的问题
  • 修复属性名后如果还有异常,可以排查:传入的账号密码大小写/前后空格和数据库值不一致、调用函数时参数传递顺序错误两个常见场景

内容的提问来源于stack exchange,提问作者Cristian M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 22:54:03