微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么在 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
  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。