объект массива - PullRequest
       5

объект массива

0 голосов
/ 28 декабря 2018

Я хочу, чтобы под администратором должен быть тест № 1 и тест № 4, под менеджером должен быть тест № 2, а под головой должен быть тест № 3.Я пытался, но не мог сделать это согласно требованию

ссылка: 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);
});

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Вы пробовали использовать некоторые if / elses?Например,

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.

0 голосов
/ 28 декабря 2018

Это потому, что вы регистрируете всех пользователей как одного в последнем forEach.Который дает вам этот вывод.Сначала вы выводите все «заголовки», а затем выводите всех пользователей.

Вместо того, чтобы добавлять пользователей в массив, вы должны рассмотреть возможность его регистрации.

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);
  })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...