我要在管理员下进行test#1&test#4,在经理下进行test#2,而在主管下进行test#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);
});
答案 0 :(得分:1)
您是否尝试过使用某些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
变量中。
答案 1 :(得分:0)
那是因为您要在最后一个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);
})
})
答案 2 :(得分:0)
@ Adriani6
实际上您的方法是可行的,但是如何将Admin,Manager,Head变为大胆且动态的样式,现在我已将所有数据推送到一个在下拉列表中打印的数组中
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)
mapData.push(element.name)
element.users.forEach(function (element) {
mapData.push(element.name);
})
})