Angular 如何以角度过滤阵列中的对象?
我有一个json对象数组,如下所示-Angular 如何以角度过滤阵列中的对象?,angular,Angular,我有一个json对象数组,如下所示- [ { "EmployeeID": "ABC", "Department": "IT", }, { "EmployeeID": "PQR", "Department": "IT", }, { "EmployeeID": "IJK", "Department": "Legal", }, { "EmployeeID": "LMN", "Department": "Legal", }, . . . ] 我想将同一部门的所有员工存储在一个单
[
{
"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)">
我面临两个问题-
谢谢 通过这种方式,您可以过滤每个与输入具有相同部门的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为什么会抛出错误。也许你可以放点光。