首页 > 解决方案 > 数组对象数组问题

问题描述

我希望在 admin 下应该有 test#1 和 test#4,在 manager 下应该有 test#2,在 head 下应该有 test#3。我试过但不能按要求做

链接:https ://jsbin.com/cecafeqobo/edit?js ,下面的控制台是我的代码:

var mapData = [];

var userList =[{id:2,name:'Admin', users:[{id:2, name:'Test#1'},{id:3,name:'test#4'}]},{id:2,name:'Manager', users:[{id:2, name:'test#2'}]},{id:2,name:'Head', users:[{id:2, name:'test#3'}]}];
userList.forEach(function(element) {
  console.log(element.name)
  element.users.forEach(function (element) {
       mapData.push(element);
  })
})

mapData.forEach((element) => {
  console.log(element.name);
});

标签: javascriptarraysobject

解决方案


您是否尝试过使用一些 if/else?例如

admin_users = [];
manager_users = [];

userList.forEach(function (root_element) {
  element.users.forEach(function (element) {
    switch (root_element.name) {
      case 'Admin':
        admin_users.push(element);
        break;
      // Same for other types of users.
    }
  })
})

然后,您的管理员用户将保存在admin_users变量中,而您的经理用户将保存在manager_users变量中。


推荐阅读