问题描述
在此代码中,我尝试随后使用数组中的所有对象从对象中调用 .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
解决方法
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
}