Angular 筛选器不返回值

Angular 筛选器不返回值,angular,typescript,angular8,Angular,Typescript,Angular8,筛选器以获取partnername,其始终返回未定义的 administrationList = [ { "runid": 6, "partnerid": 2, "partnername": "test admin2", }, { "runid": 5, "partnerid": 5, "part

筛选器以获取partnername,其始终返回未定义的

 administrationList = [
  {
    "runid": 6,
    "partnerid": 2,
    "partnername": "test admin2",
    
  },
  {
    "runid": 5,
    "partnerid": 5,
    "partnername": "test admin1"
  }
]

let val = administrationList.filter(pItem => pItem.partnerid == 7).partnername;
   console.log("###########val :"+val); //returns undefined

过滤器返回数组而不是对象,所以先取

let val = this.administrationList.filter(pItem => pItem.partnerid == 7)[0].partnername;
或者使用find获取对象

let val = this.administrationList.find(pItem => pItem.partnerid == 7).partnername;
或者使用reduce

let val=this.administrationList.reduce(function(prev, curr) { return (curr.partnerid === 3) ? curr.partnername : prev; }, null);
var管理列表=[ { runid:6, partnerid:2, 合作伙伴名称:测试管理员2, }, { runid:5, partnerid:5, 合作伙伴名称:测试管理员1 } ] 让val=administrationList.FilterItem=>pItem.partnerid==7[0] 洛格瓦尔?val.partnername:空; val=administrationList.findpItem=>pItem.partnerid==2; 洛格瓦尔?val.partnername:空 val=administrationList.reducefunctionprev,curr{return curr.partnerid==5?curr.partnername:prev;},null;
console.logval过滤器返回数组而不是对象,因此首先获取

let val = this.administrationList.filter(pItem => pItem.partnerid == 7)[0].partnername;
或者使用find获取对象

let val = this.administrationList.find(pItem => pItem.partnerid == 7).partnername;
或者使用reduce

let val=this.administrationList.reduce(function(prev, curr) { return (curr.partnerid === 3) ? curr.partnername : prev; }, null);
var管理列表=[ { runid:6, partnerid:2, 合作伙伴名称:测试管理员2, }, { runid:5, partnerid:5, 合作伙伴名称:测试管理员1 } ] 让val=administrationList.FilterItem=>pItem.partnerid==7[0] 洛格瓦尔?val.partnername:空; val=administrationList.findpItem=>pItem.partnerid==2; 洛格瓦尔?val.partnername:空 val=administrationList.reducefunctionprev,curr{return curr.partnerid==5?curr.partnername:prev;},null;
console.logvalerror:错误TS1005:':'应为。。在使用时?使用最新的答案。你应该删除吗?从typescript中,然后检查剪下的示例我可以在一行中使用它吗。因为我需要使用这样的表达式。administrations=administrations.mapitem=>{partnerid:item.adminId,partnername:administrationList.findpItem=>pItem.partnerid==item.adminId?.partnername,}我更新了答案。您可以将reduce用于单行解决方案。请检查@user630209错误:错误TS1005:':'应为。。在使用时?使用最新的答案。你应该删除吗?从typescript中,然后检查剪下的示例我可以在一行中使用它吗。因为我需要使用这样的表达式。administrations=administrations.mapitem=>{partnerid:item.adminId,partnername:administrationList.findpItem=>pItem.partnerid==item.adminId?.partnername,}我更新了答案。您可以将reduce用于单行解决方案。请检查@user630209是我错了还是您试图获取一个不存在的partnerid?当然,您还需要使用findit更改筛选器运算符,有时该值也不存在。是我错了还是您试图获取不存在的partnerid?当然,您还需要使用findit更改筛选器运算符,有时该值也不存在。