Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
想要在nodejs(javascript)中创建数组的数组_Javascript_Arrays_Node.js_Express - Fatal编程技术网

想要在nodejs(javascript)中创建数组的数组

想要在nodejs(javascript)中创建数组的数组,javascript,arrays,node.js,express,Javascript,Arrays,Node.js,Express,我想使用给定的记录创建数组的数组 user_permission = [ { _id: 1, description: 'chairman list', main_module: 'admin', sub_module: 'admin' }, { _id: 2, description: 'create chairman get method', main_module: 'admin', sub_module: 'admin' }, {

我想使用给定的记录创建数组的数组

user_permission =
 [ { _id: 1,
    description: 'chairman list',
    main_module: 'admin',
    sub_module: 'admin' },
  { _id: 2,
    description: 'create chairman get method',
    main_module: 'admin',
    sub_module: 'admin' },
  { _id: 3,
    description: 'create chairman post method',
    main_module: 'admin',
    sub_module: 'admin' },
  { _id: 4,
    description: 'chairman list post',
    main_module: 'chairman',
    sub_module: 'chairman' },
  { _id: 5,
    description: 'vendor list',
    main_module: 'vendor',
    sub_module: 'vendor' },
  { _id: 6,
    description: 'vendor list post',
    main_module: 'vendor',
    sub_module: 'vendor' } ]
使用这个数组,我想得到这个类型的数组,就像给定的例子一样

[ 
    [ 'admin > admin': { '1': 'chairman list' },
                       { '2': 'create chairman get method' },
                       { '3': 'create chairman post method' } 
    ],
    [ 'chairman > chairman': { '4': 'chairman list post' } 
    ],
    [ 'vendor > vendor': { '5': 'vendor list' },
                         { '6': 'vendor list post' } 
    ] 
]
使用foreach并获得结果,但我没有创建正确的数组

user_permission.forEach(function(data){
    var mainmodule = [[data.main_module]+" > "+[data.sub_module]];
    var key = data._id;
    var val = data.description;

    var elem = new Array();
    elem[mainmodule] ={};
    elem[mainmodule][key] = val;
    user_prems.push(elem);
})
foreach的结果如下:-

[ 
    [ 'admin > admin': { '1': 'chairman list' } ],
    [ 'admin > admin': { '2': 'create chairman get method' } ],
    [ 'admin > admin': { '3': 'create chairman post method' } ],
    [ 'chairman > chairman': { '4': 'chairman list post' } ],
    [ 'vendor > vendor': { '5': 'vendor list' } ],
    [ 'vendor > vendor': { '6': 'vendor list post' } ] 
]
您可以使用reduce转换数据:

让用户_权限=[ {{u id:1,description:'主席列表',主模块:'管理',子模块:'管理'}, {{u id:2,description:'create chairman get method',主模块:'admin',子模块:'admin'}, {u id:3,description:'创建主席职位方法',主模块:'管理',子模块:'管理', {id:4,描述:'主席名单职位',主模块:'主席',子模块:'主席', {{u id:5,description:'vendor list',主模块:'vendor',子模块:'vendor'}, {{u id:6,description:'vendor list post',主模块:'vendor',子模块:'vendor'}] let result=user\u permission.reduceprev,current=>{ let key=`${current.main_module}>${current.sub_module}`; 让group=prev.findx=>x[key]; 如果{ 组={[key]:[]}; 普什集团; } 组[key]。推送{[current.\u id]:current.description}; 返回上一个; }, []
console.logresult 首先,您的预期输出是不正确的。你应该有一个对象而不是数组。他们使用reduce获得一个对象,该对象的键为admin>admin,。。。和值作为将包含对象的数组

const user_permission=[{{u id:1,description:'主席列表',main_模块:'管理',sub_模块:'管理'},{{u id:2,description:'创建主席获取方法',main_模块:'管理',sub_模块:'管理'},{u id:3,description:'创建主席发布方法',main_模块:'管理',{id:4,描述:'主席名单岗',主模块:'主席',子模块:'主席'},{id:5,描述:'供应商名单',主模块:'供应商',子模块:'供应商'},{id:6,描述:'供应商名单岗',主模块:'供应商',子模块:'供应商'}] const res=user\u permission.reduceac,a=>{ let key=`${a.main_module}>${a.sub_module}` 如果!ac[key]ac[key]=[]; ac[key].push{[a.\u id]:a.description} 返回ac; },{}
console.Logrest在javascript中没有这样的结构…您需要包含数组的对象对吗?['admin>admin':{'1':'chairman list'},您所需的输出无效。数组没有键值对。您需要这样的结构?{'admin':[{'1':'chairman list'}}很好,但如何创建此{'admin':[{'1':'chairman list'}].请给我举个例子