javascript - 在 vanilla JS 中使用 forEach 迭代数组对象

标签 javascript

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/

相关文章:

javascript - 字符串到数字的混淆

javascript - 是否可以在 3d 透视 div 中制作曲线形状?

javascript - 计算属性中的复杂 V-If?

javascript - jQuery insertBefore、Apend 用于动态创建的元素

javascript - jquery 最小富文本框插件

javascript - Javascript 是否接受 getElementsByTagName 中的路径

javascript - React Leaflet : Get objects from MongoDB to Leaflet map as markers (using node. js 和 express)

javascript - React Native,在 for 循环中创建按钮

javascript - 第一个公共(public)模板。该怎么办?

javascript - 如何设置表单 Action 以打开特定大小的新窗口?