You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么在JavaScript的for of循环中无法正常访问对象属性?

问题原因

你搞混了for...of循环的遍历结果:

  • for (let user of users)遍历出来的user是users数组里的单个对象元素,不是数组本身
  • 你在循环里写user[counter].password,相当于给普通对象加了数字下标取值:第一次循环counter=0,user是{name: "Paul", ...}这个对象,对象本身没有0这个属性,所以user[0]返回undefined,再访问undefined.password自然会抛出类型错误
  • 你说的“循环外相同写法”其实和循环内根本不一样:循环外是users[0].password,users是数组,用下标0取到的是第一个元素对象,当然可以正常访问password属性

修复方案

有两种常用写法可以实现需求:

  1. 直接用for...of的遍历结果,不需要额外计数器
for (let user of users) {
  console.log(user.password);
}
  1. 如果需要用到下标索引,改用普通for循环遍历数组本身
for (let counter = 0; counter < users.length; counter++) {
  console.log(users[counter].password);
}

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 20:06:00