首页 > 解决方案 > 使用 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}

我正在尝试运行一个循环来遍历每个用户密钥,看看它们是否有任何价值,unpaidaction我坚持如何继续使用下面的代码来做到这一点。

 for (var key in users) {
     users[key].forEach(x => {

     })

  }

标签: javascript

解决方案


要完成您开始的代码,请使用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')
      }
    }
  })
}


推荐阅读