简体   繁体   English

如何使用javascript / jquery从数组中过滤数据?

[英]How to filter the data from array using javascript/jquery?

I have declared an array as var user_profile = []; 我已将数组声明为var user_profile = []; and I have already some pushed data in array which contains : 我已经在数组中包含一些推送数据,其中包含:

[  
   {  
      "assessmentType":"FINAL",
      "assessCatId":-1,
      "assessReason":"2",
      "assessAmount":"",
      "assessTotal":null
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":-1,
      "assessReason":"2",
      "assessTotal":null
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":-1,
      "assessReason":"",
      "assessTotal":null
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":0,
      "assessReason":null,
      "assessAmount":"",
      "assessPenalty":"",
      "assessTotal":0
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":0,
      "assessReason":null,
      "assessTotal":null
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":0,
      "assessReason":"",
      "assessTotal":null
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":0,
      "assessReason":"",
      "assessTotal":null
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":0,
      "assessReason":"2075-09-09",
      "assessAmount":"2075-09-17",
      "assessTotal":null
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":0,
      "assessReason":"2075-09-09",
      "assessTotal":null
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":0,
      "assessReason":"2075-09-17",
      "assessTotal":null
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":1,
      "assessReason":"",
      "assessAmount":"0",
      "assessPenalty":"0",
      "assessTotal":0
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":2,
      "assessReason":"",
      "assessAmount":"0",
      "assessPenalty":"0",
      "assessTotal":0
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":3,
      "assessReason":"",
      "assessAmount":"0",
      "assessPenalty":"0",
      "assessTotal":0
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":1,
      "assessReason":"A",
      "assessAmount":"1",
      "assessPenalty":"2",
      "assessTotal":3
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":2,
      "assessReason":"B",
      "assessAmount":"3",
      "assessPenalty":"4",
      "assessTotal":7
   },
   {  
      "assessmentType":"FINAL",
      "assessCatId":3,
      "assessReason":"C",
      "assessAmount":"5",
      "assessPenalty":"6",
      "assessTotal":11
   }
]

I only need the data in array whose assessCatId=1,2,3 and assessReason is not Empty . 我只需要其assetCatId = 1,2,3的数组中的数据, 并且assessReason不为Empty So I tried by filtering it: 所以我尝试通过过滤它:

const output = user_profile.filter(({ assessCatId,assessReason })  => assessCatId != 0 || assessReason != 'empty');
            console.log("here the outpuit is");
            console.log(output)  ;

But it is not filtering the array.Still every data is coming in the array.How can i manage this array to filter the data? 但是它不是在过滤数组。仍然每个数据都在数组中。我如何管理这个数组来过滤数据?

You have to use && instead of || 您必须使用&&而不是|| . Try 尝试

(assessCatId >= 1 && assessCatId <= 3) && (assessReason != '' && assessReason != null)

 var user_profile =[ { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessAmount":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessAmount":"", "assessPenalty":"", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessAmount":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"A", "assessAmount":"1", "assessPenalty":"2", "assessTotal":3 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"B", "assessAmount":"3", "assessPenalty":"4", "assessTotal":7 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"C", "assessAmount":"5", "assessPenalty":"6", "assessTotal":11 } ] const output = user_profile.filter(({ assessCatId,assessReason }) => (assessCatId >= 1 && assessCatId <= 3) && (assessReason != '' && assessReason != null)); console.log("here the outpuit is"); console.log(output) ; 

You can also shortened the condition like 您也可以缩短条件

(assessCatId >= 1 && assessCatId <= 3) && assessReason)

 var user_profile =[ { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessAmount":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessAmount":"", "assessPenalty":"", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessAmount":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"A", "assessAmount":"1", "assessPenalty":"2", "assessTotal":3 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"B", "assessAmount":"3", "assessPenalty":"4", "assessTotal":7 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"C", "assessAmount":"5", "assessPenalty":"6", "assessTotal":11 } ] const output = user_profile.filter(({ assessCatId,assessReason }) => (assessCatId >= 1 && assessCatId <= 3) && assessReason); console.log("here the outpuit is"); console.log(output); 

You can insert any value in array and check it 您可以在数组中插入任何值并检查它

 let k=[ { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessAmount":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessAmount":"", "assessPenalty":"", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessAmount":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"A", "assessAmount":"1", "assessPenalty":"2", "assessTotal":3 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"B", "assessAmount":"3", "assessPenalty":"4", "assessTotal":7 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"C", "assessAmount":"5", "assessPenalty":"6", "assessTotal":11 } ] let arr=[1,2,3] let d=k.filter(a=>arr.indexOf(a.assessCatId) > -1 && a.assessReason!="" && a.assessReason!=null) console.log(d) 

You can do assessCatId > 0 && assessReason 您可以执行assessCatId > 0 && assessReason

Code: 码:

 const user_profile = [{"assessmentType": "FINAL","assessCatId": -1,"assessReason": "2","assessAmount": "","assessTotal": null},{"assessmentType": "FINAL","assessCatId": -1,"assessReason": "2","assessTotal": null},{"assessmentType": "FINAL","assessCatId": -1,"assessReason": "","assessTotal": null},{"assessmentType": "FINAL","assessCatId": 0,"assessReason": null,"assessAmount": "","assessPenalty": "","assessTotal": 0},{"assessmentType": "FINAL","assessCatId": 0,"assessReason": null,"assessTotal": null},{"assessmentType": "FINAL","assessCatId": 0,"assessReason": "","assessTotal": null},{"assessmentType": "FINAL","assessCatId": 0,"assessReason": "","assessTotal": null},{"assessmentType": "FINAL","assessCatId": 0,"assessReason": "2075-09-09","assessAmount": "2075-09-17","assessTotal": null},{"assessmentType": "FINAL","assessCatId": 0,"assessReason": "2075-09-09","assessTotal": null},{"assessmentType": "FINAL","assessCatId": 0,"assessReason": "2075-09-17","assessTotal": null},{"assessmentType": "FINAL","assessCatId": 1,"assessReason": "","assessAmount": "0","assessPenalty": "0","assessTotal": 0},{"assessmentType": "FINAL","assessCatId": 2,"assessReason": "","assessAmount": "0","assessPenalty": "0","assessTotal": 0},{"assessmentType": "FINAL","assessCatId": 3,"assessReason": "","assessAmount": "0","assessPenalty": "0","assessTotal": 0},{"assessmentType": "FINAL","assessCatId": 1,"assessReason": "A","assessAmount": "1","assessPenalty": "2","assessTotal": 3},{"assessmentType": "FINAL","assessCatId": 2,"assessReason": "B","assessAmount": "3","assessPenalty": "4","assessTotal": 7},{"assessmentType": "FINAL","assessCatId": 3,"assessReason": "C","assessAmount": "5","assessPenalty": "6","assessTotal": 11}]; const output = user_profile.filter(({assessCatId, assessReason}) => assessCatId > 0 && assessReason); console.log(output); 

Try This: 尝试这个:

var res = arr.filter( el => el.assessCatId > 0 && el.assessCatId < 4 && el.assessReason  ) ;

 var arr = [ { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessAmount":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessAmount":"", "assessPenalty":"", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessAmount":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"A", "assessAmount":"1", "assessPenalty":"2", "assessTotal":3 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"B", "assessAmount":"3", "assessPenalty":"4", "assessTotal":7 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"C", "assessAmount":"5", "assessPenalty":"6", "assessTotal":11 } ] var res = arr.filter( el => el.assessCatId > 0 && el.assessCatId < 4 && el.assessReason ) ; console.log(res); 

 var arr = [{ "assessmentType": "FINAL", "assessCatId": -1, "assessReason": "2", "assessAmount": "", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": -1, "assessReason": "2", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": -1, "assessReason": "", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": null, "assessAmount": "", "assessPenalty": "", "assessTotal": 0 }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": null, "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": "", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": "", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": "2075-09-09", "assessAmount": "2075-09-17", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": "2075-09-09", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": "2075-09-17", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 1, "assessReason": "", "assessAmount": "0", "assessPenalty": "0", "assessTotal": 0 }, { "assessmentType": "FINAL", "assessCatId": 2, "assessReason": "", "assessAmount": "0", "assessPenalty": "0", "assessTotal": 0 }, { "assessmentType": "FINAL", "assessCatId": 3, "assessReason": "", "assessAmount": "0", "assessPenalty": "0", "assessTotal": 0 }, { "assessmentType": "FINAL", "assessCatId": 1, "assessReason": "A", "assessAmount": "1", "assessPenalty": "2", "assessTotal": 3 }, { "assessmentType": "FINAL", "assessCatId": 2, "assessReason": "B", "assessAmount": "3", "assessPenalty": "4", "assessTotal": 7 }, { "assessmentType": "FINAL", "assessCatId": 3, "assessReason": "C", "assessAmount": "5", "assessPenalty": "6", "assessTotal": 11 }] var o = arr.filter((f) => [1, 2, 3].indexOf(f.assessCatId) != -1 && f.assessReason) console.log(o) 

Just replace by ({ assessCatId,assessReason })=>assessCatId>0 && assessReason!='') 只需替换为({ assessCatId,assessReason })=>assessCatId>0 && assessReason!='')

 var user_profile = [ { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessAmount":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessAmount":"", "assessPenalty":"", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessAmount":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"A", "assessAmount":"1", "assessPenalty":"2", "assessTotal":3 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"B", "assessAmount":"3", "assessPenalty":"4", "assessTotal":7 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"C", "assessAmount":"5", "assessPenalty":"6", "assessTotal":11 } ]; const output = user_profile.filter(({ assessCatId,assessReason })=>assessCatId>0 && assessReason!=''); console.log("output", output.length, output); 

var output = [];
for(var i=0; i < user_profile.length; i++){
    var assessCatId = user_profile[i].assessCatId;
    var assessReason = user_profile[i].assessReason;
    if((assessCatId >= 1 && assessCatId <= 3) && (assessReason != '' && assessReason != null)){
        output.push(user_profile[i]);
    }
}
console.log(output);

I think you should first try the basic for loop then you should dive to the array helper/prototype functions. 我认为您应该首先尝试基本的for loop然后再深入研究数组帮助器/原型功能。 This will help you to understand whats going on. 这将帮助您了解发生了什么。

 function test() { var data = [{ "assessmentType": "FINAL", "assessCatId": -1, "assessReason": "2", "assessAmount": "", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": -1, "assessReason": "2", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": -1, "assessReason": "", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": null, "assessAmount": "", "assessPenalty": "", "assessTotal": 0 }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": null, "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": "", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": "", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": "2075-09-09", "assessAmount": "2075-09-17", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": "2075-09-09", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 0, "assessReason": "2075-09-17", "assessTotal": null }, { "assessmentType": "FINAL", "assessCatId": 1, "assessReason": "", "assessAmount": "0", "assessPenalty": "0", "assessTotal": 0 }, { "assessmentType": "FINAL", "assessCatId": 2, "assessReason": "", "assessAmount": "0", "assessPenalty": "0", "assessTotal": 0 }, { "assessmentType": "FINAL", "assessCatId": 3, "assessReason": "", "assessAmount": "0", "assessPenalty": "0", "assessTotal": 0 }, { "assessmentType": "FINAL", "assessCatId": 1, "assessReason": "A", "assessAmount": "1", "assessPenalty": "2", "assessTotal": 3 }, { "assessmentType": "FINAL", "assessCatId": 2, "assessReason": "B", "assessAmount": "3", "assessPenalty": "4", "assessTotal": 7 }, { "assessmentType": "FINAL", "assessCatId": 3, "assessReason": "C", "assessAmount": "5", "assessPenalty": "6", "assessTotal": 11 } ] for (var i = 0; i < data.length; i++) { var current_node = data[i]; var filtered = []; if ((current_node.assessCatId >= 1 && current_node.assessCatId <= 3) && (current_node.assessReason != '' && current_node.assessReason != null)) { filtered.push(current_node); } } return filtered; } console.log(JSON.stringify(test())) 

Use a filter function and use second this parameter to pass array of CatIds. 使用过滤器函数,然后使用第二个this参数传递CatIds数组。 Test that the current element's id is included in the CatIds and use the fact that defined, non-empty strings are truthy, falsey otherwise. 测试当前元素的ID是否包含在CatId中,并使用已定义的非空字符串为true,否则为false的事实。

 const arr = [ { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessAmount":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"2", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":-1, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessAmount":"", "assessPenalty":"", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":null, "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessAmount":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-09", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":0, "assessReason":"2075-09-17", "assessTotal":null }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"", "assessAmount":"0", "assessPenalty":"0", "assessTotal":0 }, { "assessmentType":"FINAL", "assessCatId":1, "assessReason":"A", "assessAmount":"1", "assessPenalty":"2", "assessTotal":3 }, { "assessmentType":"FINAL", "assessCatId":2, "assessReason":"B", "assessAmount":"3", "assessPenalty":"4", "assessTotal":7 }, { "assessmentType":"FINAL", "assessCatId":3, "assessReason":"C", "assessAmount":"5", "assessPenalty":"6", "assessTotal":11 } ]; const catIds = [1, 2, 3]; // return elements with acceptable catId (id matches at least one) and truthy reason (non-empty, non-null, non-undefined) function filterFn({ assessCatId: id, assessReason: reason }) { return this.includes(id) && !!reason }; const res = arr.filter(filterFn, catIds); console.log(res); 

Use && instead of || 使用&&代替|| because in the case of &&, true is returned when both the conditions are true whereas in the case of || 因为在&&的情况下,当两个条件都为true时返回true,而在||的情况下则返回true true is returned if either of the conditions is true. 如果任一条件为true,则返回true。 Since in your case you want both assessCatId!=0 and assessReason= not empty, So for this && will work. 由于在您的情况下,您既需要assetCatId!= 0,又要使assetReason =不为空,所以对于此&&就可以了。

Code Snippet 代码段

(assessCatId >= 1 && assessCatId <= 3) && (assessReason != '' && assessReason != null) (assessCatId> = 1 && AssessmentCatId <= 3)&&(assessReason!=''&& AssessmentReason!= null)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM