在这段代码中,我试图随后对数组中的所有对象从对象调用.password属性。然而,如果我在";对于";循环,它不起作用。但从";对于";循环时,不会出现任何问题,并且工作正常。
它为什么不能正确地施展魔法是有原因的吗?
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
语句迭代数组的元素,然后可以使用此对象获取密码。
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
}