我有一个在应用程序中循环的函数。目前,它会查找筛选我的数组的特定应用程序编号。
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; };
我想使用数据调用产生的数字,而不是在我的函数中对要检查的数字进行硬编码(90、100、110、120、125(。这就是这些数字在数据调用中返回的方式。
pendingAppStatuses = [90, 100];
我想让我的函数检查从我的响应中返回的数字,这些数字并不总是90或100,所以我不想硬编码这些值。
applicationResultSet = [{applicationStatus: {code: 100}},{applicationStatus: {code: 120}}, {applicationStatus: {code: 130}},{applicationStatus: {code: 150}}, {applicationStatus: {code: 170}}, {applicationStatus: {code: 220}}];
var filteredAppsArray = applicationResultSet.filter(filterApplications);
如果我理解你的问题,你只需要在过滤器中使用indexOf
之类的东西,比如:
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)