const users = {terry1: [{action: "unpaid", user: "terry1", member: true}, {action: "paid", user: "terry1", member: true}], malcomla3: [{action: "paid", user: "malcomla3", member: true}], jonny:[{action: "paid", user: "jonny", member: true}]}
我的数据与上面类似。每个键代表一个用户名,与其关联的数组是另一个具有该用户相关字段的对象,例如:{action: "paid", user: "doug101", member: true }
我正在尝试运行一个循环来遍历每个用户 key ,看看他们的操作
是否有任何unpaid
值,但我不知道如何继续使用下面的代码来执行此操作。
for (var key in users) {
users[key].forEach(x => {
})
}
最佳答案
要使用 forEach
完成您开始的代码,以下是如何使用 .hasOwnProperty()
检查数组中的对象是否为 行动
,如果是,是否是“未付费”。
注意,根据评论,我用第三个项目增加了一个用户对象数组。
堆栈片段
const users = {
terry1: [
{action: "paid", user: "terry1", member: true},
{action: "unpaid", user: "terry1", member: true},
{action: "paid", user: "terry1", member: true}
],
malcomla3: [
{action: "paid", user: "malcomla3", member: true}
],
jonny: [
{action: "paid", user: "jonny", member: true}
]
}
for (var key in users) {
users[key].forEach( function(item) {
for (var key2 in item) {
if( item.hasOwnProperty("action") && item[key2] == "unpaid" ) {
console.log(key, 'not paid')
}
}
})
}
关于javascript - 在 vanilla JS 中使用 forEach 迭代数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51564763/