过滤器未返回值

时间:2020-07-18 09:30:49

标签: angular typescript angular8

过滤器获取合作伙伴名称,它始终会返回未定义的内容。

 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

1 个答案:

答案 0 :(得分:4)

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

let val = this.administrationList.filter(pItem => pItem.partnerid == 7)[0].partnername;

或使用查找获取对象

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 administrationList = [
  {
    "runid": 6,
    "partnerid": 2,
    "partnername": "test admin2",
    
  },
  {
    "runid": 5,
    "partnerid": 5,
    "partnername": "test admin1"
  }
]

let val = administrationList.filter(pItem => pItem.partnerid == 7)[0]
console.log(val ? val.partnername : null) ;
val = administrationList.find(pItem => pItem.partnerid == 2);
console.log(val ? val.partnername : null) 
val=administrationList.reduce(function(prev, curr) { return (curr.partnerid === 5) ? curr.partnername : prev; }, null);
console.log(val)