Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Javascript 如何制作素数泛型组数组_Javascript_Arrays_Angular_Primeng - Fatal编程技术网

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'}, ] } ]; `