为什么在 for 循环中调用对象的 属性 不起作用?

Why calling a property of an object doesn't work in the for of loop?

在这段代码中,我试图从对象中调用 .password 属性 随后使用数组中的所有对象。 但是,如果我在“for of”循环中执行此操作,则它不起作用。 但是在“for of”循环之外,没有问题发生并且按预期工作。

它不能正常发挥作用是否有原因?

 let users = [
  {name: "Paul", login: "cheerfullime", password: "qqwerty11"},
  {name: "Jack", login: "jackdaniels", password: "browser22"},
]

let counter = 0;
  for (let user of users) {
    console.log(user[counter].password);// This one returns an error
    counter ++;
  }

  users[0].password;//But the same thing out of the for of loop works fine

你用 for ... of statement 迭代数组的元素,你可以使用这个对象来获取密码。

let users = [{ name: "Paul", login: "cheerfullime", password: "qqwerty11" }, { name: "Jack", login: "jackdaniels", password: "browser22" }],
    counter = 0;
    
for (let user of users) {
    console.log(user.password);
    counter++;
}

这里,user 是一个对象,您正在尝试使用数组表示法访问它的 属性。你应该使用:

  users.forEach (function (user) {
    console.log(user.password);
  }
)

或者,您也可以这样做:

  for (let counter=0; counter<users.length;counter++) {
    console.log(users[counter].password); // use 'users' instead of user
  }