javascript - 使用 forEach 遍历 vanilla JS 中的数组对象
问题描述
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}
我正在尝试运行一个循环来遍历每个用户密钥,看看它们是否有任何价值,unpaid
但action
我坚持如何继续使用下面的代码来做到这一点。
for (var key in users) {
users[key].forEach(x => {
})
}
解决方案
要完成您开始的代码,请使用forEach
,这里是操作方法,.hasOwnProperty()
用于检查数组中的对象是否为action
,如果是,是否“未付费”。
请注意,根据评论,我用第三个项目增加了一个用户对象数组。
堆栈片段
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')
}
}
})
}
推荐阅读
- linux - Jenkins 不能使用 aws-cli 密钥。无法找到 AWS CLI 的凭证
- google-apps-script - 如何使用 google sheet api v4 获取 protectedRangeId?
- javascript - 具有相同值的多个选择执行此操作
- google-app-engine - 是否可以与 Google App Engine 并行部署服务?
- node.js - Node.JS Express - POST 请求不起作用(返回 404) - 在端口 8080 的子目录中运行
- ios - 使用 SwiftUI 和 UIKit 视图时如何仅在第一个视图中隐藏导航栏
- pointers - 是否有替代原始指针的不安全 slice::from_raw_parts 的安全替代方法?
- php - 无法针对复选框获取正确的值
- oracle - NVL函数不使用索引而不是FTS,是否可以修改查询
- ios - 如何将不同的字符串值放入 UITableView 中的多行