Angular 筛选器不返回值
筛选器以获取partnername,其始终返回未定义的Angular 筛选器不返回值,angular,typescript,angular8,Angular,Typescript,Angular8,筛选器以获取partnername,其始终返回未定义的 administrationList = [ { "runid": 6, "partnerid": 2, "partnername": "test admin2", }, { "runid": 5, "partnerid": 5, "part
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更改筛选器运算符,有时该值也不存在。