如何使用jQuery的grep()函数过滤动态输入

How to filter dynamic inputs using grep() function of jQuery

本文关键字:函数 过滤 动态 输入 何使用 jQuery grep      更新时间:2023-09-26

我使用jQuery的"grep"函数来过滤数据,下面的代码示例工作得很好,因为条件是静态的。

但如果"名称"answers"学校"参数有多个值如何过滤它…?,考虑我收到的名字&学校从多个复选框列表。理想情况下,我不想硬编码

var students = 
[ {'id':1, 'name':'amit', 'school':'st john'},
  {'id':2, 'name':'ankit','school':'st mary'},
  {'id':3, 'name':'john', 'school':'hill school'},
  {'id':4, 'name':'matt', 'school':'st john'}];

jQuery.grep(students,function(student)
 { return  student.name =='john' && student.school=='st.john' });
//something like this is possible?
 { student.name =='john||jack||stella' && student.school=='st.john||st.mary' });

你可以这么做,但不是你想的那样:

var names   = [ 'john', 'jack', 'stella' ];
var schools = [ 'st john', 'st mary' ];
var matches = jQuery.grep(students, function(student) {
    return names.indexOf(student.name)     != -1
        && schools.indexOf(student.school) != -1;
});

所以你只需要根据你的动态输入设置你的namesschools数组,然后你就可以开始了。