'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