Javascript 如何制作素数泛型组数组
我的目标:Javascript 如何制作素数泛型组数组,javascript,arrays,angular,primeng,Javascript,Arrays,Angular,Primeng,我的目标: users = [ {id: 1, name: "name1", company: "com1"}, {id: 2, name: "name2", company: "com2"}, {id: 3, name: "name3", company: "com1"}, {id: 4, name: "name4", company: "com2"}, {id: 5, name: "name5", company: "com3"}, ] 对于Priming下拉列表,我需
users = [
{id: 1, name: "name1", company: "com1"},
{id: 2, name: "name2", company: "com2"},
{id: 3, name: "name3", company: "com1"},
{id: 4, name: "name4", company: "com2"},
{id: 5, name: "name5", company: "com3"},
]
对于Priming下拉列表,我需要将其转换为首选对象,
我如何使用angular 2,如下所示
我要制作的对象:
[
{
label: 'com1',
items: [
{id: 1, name: "name1", company: "com1"},
{id: 3, name: "name3", company: "com1"}
]
},
{
label: 'com2',
items: [
{id: 2, name: "name2", company: "com2"},
{id: 4, name: "name4", company: "com2"}
]
},
{
label: 'com3',
items: [
{id: 5, name: "name5", company: "com3"},
]
}
]
我认为你可以使用和组合
文件说明减少:
reduce方法执行在数组的每个元素上提供的reducer函数,从而产生一个输出值
以及查找:
find方法返回所提供数组中满足所提供测试函数的第一个元素的值
请在下面找到一个工作示例:
常量用户=[
{id:1,name:name1,company:com1},
{id:2,name:name2,company:com2},
{id:3,name:name3,company:com1},
{id:4,name:name4,company:com2},
{id:5,name:name5,company:com3},
];
const result=users.reducea,{id,name,company}=>{
const found=a.finde=>e.label==company;
如果找到{
找到.items.push{
身份证、姓名、公司
};
}否则{
a、 推{
标签:公司,
项目:[{id,名称,公司}],
};
}
返回a;
}, [];
console.logresult;reduce很好,这个答案使用了很好的ES6+语法。@IraklisGkougkousis谢谢!有一件事我在想,在这个场景中是否值得使用destructuring语句来减少参数。如果我将a,c=>{}用于reduce,那么在数组的推行中,我可以使用{…c}。但我想这只是一个决定的问题。我认为在这种情况下,语法是多余的。a、 c=>{}是我会使用的,但这只是个人偏好。事实上,我喜欢像您这样的答案突出显示它们,因为很多人甚至不知道它们的存在。我需要将->SelectItemGroup`items:[{id:2,name:name2,company:com2}]`转换为`[{label:'com2',items:[{label:'name2',value:'2'}, ] } ]; `