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

问题描述

在此代码中,我尝试随后使用数组中的所有对象从对象中调用 .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

解决方法

您使用 distilleries of Scotland map 迭代数组的元素,您可以使用此对象获取密码。

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
  }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...