代码之家  ›  专栏  ›  技术社区  ›  Indraraj26

数组对象数组问题

  •  0
  • Indraraj26  · 技术社区  · 7 年前

    链接: https://jsbin.com/cecafeqobo/edit?js,console

    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);
    });
    

    3 回复  |  直到 7 年前
        1
  •  1
  •   minitauros    7 年前

    你试过使用一些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 变量

        2
  •  0
  •   Adrian    7 年前

    您应该考虑将其添加到数组中,而不是将用户追加到数组中。

    userList.forEach(function(element) {
      console.log(element.name)
      element.users.forEach(function (element) {
           console.log(element.name);
      })
    })
    

    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) {
           console.log(element.name);
      })
    })