'Need some help filtering a response
I have this function that loops throughs apps. Currently it looks for specific app numbers which filters my array.
var filterApplications = function(app) { return app.applicationStatus.code === 90 || app.applicationStatus.code === 100 || app.applicationStatus.code === 110 || app.applicationStatus.code === 120 || app.applicationStatus.code === 125; };
What I'd like to instead of hard coding numbers to check for in my function(90, 100, 110, 120, 125) is use the numbers resulting from a data call . This is how these numbers come back in the data call.
pendingAppStatuses = [90, 100];
I'd like for my function to check the numbers that come back from my response which are not always going to be 90 or 100 so i don't want to hardcode the values.
applicationResultSet = [{applicationStatus: {code: 100}},{applicationStatus: {code: 120}}, {applicationStatus: {code: 130}},{applicationStatus: {code: 150}}, {applicationStatus: {code: 170}}, {applicationStatus: {code: 220}}];
var filteredAppsArray = applicationResultSet.filter(filterApplications);
Solution 1:[1]
If I understand your question, you just need to use something like indexOf in your filter, like:
applicationResultSet.filter( app =>
pendingAppStatuses.indexOf(+app.applicationStatus.code) >-1);
let pendingAppStatuses = [90, 100];
let applicationResultSet = [{applicationStatus: {code: 100}},{applicationStatus: {code: 120}}, {applicationStatus: {code: 130}},{applicationStatus: {code: 150}}, {applicationStatus: {code: 170}}, {applicationStatus: {code: 220}}];
let filteredAppsArray = applicationResultSet.filter( app => pendingAppStatuses.indexOf(+app.applicationStatus.code) >-1);
console.log(filteredAppsArray)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Kinglish |
