user630209
user630209

Reputation: 1207

filter not returning the value

filter to fetch the partnername, its returns undefined all the time.

 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

Upvotes: 1

Views: 70

Answers (1)

Cagri Tacyildiz
Cagri Tacyildiz

Reputation: 17610

filter returns array not object so take first

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

or use find to get object

let val = this.administrationList.find(pItem => pItem.partnerid == 7).partnername;

or use 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)

Upvotes: 4

Related Questions