Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.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/5/objective-c/27.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/2/sharepoint/4.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
Angular 如何以角度过滤阵列中的对象?_Angular - Fatal编程技术网

Angular 如何以角度过滤阵列中的对象?

Angular 如何以角度过滤阵列中的对象?,angular,Angular,我有一个json对象数组,如下所示- [ { "EmployeeID": "ABC", "Department": "IT", }, { "EmployeeID": "PQR", "Department": "IT", }, { "EmployeeID": "IJK", "Department": "Legal", }, { "EmployeeID": "LMN", "Department": "Legal", }, . . . ] 我想将同一部门的所有员工存储在一个单

我有一个json对象数组,如下所示-

[
{
 "EmployeeID": "ABC",
 "Department": "IT",

},
{
 "EmployeeID": "PQR",
 "Department": "IT",
},
{
 "EmployeeID": "IJK",
 "Department": "Legal",
},
{
 "EmployeeID": "LMN",
 "Department": "Legal",
},
 .
 .
 .
]
我想将同一部门的所有员工存储在一个单独的数组中。department值来自HTML表单,该表单在发生更改时调用函数来执行此操作

HTML-

<select class="form-control" (change)="getEmployees($event.target.value)"> 
我面临两个问题-

  • empArr的创建次数是数组中存在部门的次数,而不是包含满足条件的对象总数的一个数组
  • 它只选取包含输入部门的第一个值,并列出它存在的总次数,而不是在每次迭代中选取唯一的对象
  • 谁能帮我解决这个问题


    谢谢

    通过这种方式,您可以过滤每个与输入具有相同部门的empData

    this.empData.filter(emp => emp.Department == this.input)
                .forEach(filteredData => this.empArr.push(filteredData);
    

    通过这种方式,您可以过滤每个与输入具有相同部门的empData

    this.empData.filter(emp => emp.Department == this.input)
                .forEach(filteredData => this.empArr.push(filteredData);
    

    您只需应用筛选器,它将返回一个新数组:

    empArr=this.empData.filter(emp => emp.Department === this.input)
    

    您只需应用筛选器,它将返回一个新数组:

    empArr=this.empData.filter(emp => emp.Department === this.input)
    

    我得到一个错误-“类型为'any'的参数不可分配给类型为'never'的参数”,之后我将empArr的类型更改为empArr:any[]=[];它返回一个空数组。但是,如果我只使用-this.empData.filter(emp=>emp.Department==this.input)并将其分配给empArrcheck,以了解您可能做错了什么,它就可以完美地工作。嗨,谢谢你分享这个!实际上,这是我发布的一个示例数据。在我的原始代码中,我想过滤掉API返回的json数组中的对象。在代码中,您已将empArr指定为empArr:any[]=[];而在我的代码中,它被指定为empArr:any;因为否则它会抛出错误——“Object”类型可分配给很少的其他类型”。可能是因为从API返回的empArr已经是array类型?我对Angular非常陌生,所以我无法理解如果我使用forEach为什么会抛出错误。也许你可以解释一下,我得到一个错误——“any类型的参数不能赋值给never类型的参数”,之后我将empArr的类型改为empArr:any[]=[];它返回一个空数组。但是,如果我只使用-this.empData.filter(emp=>emp.Department==this.input)并将其分配给empArrcheck,以了解您可能做错了什么,它就可以完美地工作。嗨,谢谢你分享这个!实际上,这是我发布的一个示例数据。在我的原始代码中,我想过滤掉API返回的json数组中的对象。在代码中,您已将empArr指定为empArr:any[]=[];而在我的代码中,它被指定为empArr:any;因为否则它会抛出错误——“Object”类型可分配给很少的其他类型”。可能是因为从API返回的empArr已经是array类型?我对Angular非常陌生,所以我无法理解如果我使用forEach为什么会抛出错误。也许你可以放点光。