jQuery.grep :如何基于数组进行过滤



我正在使用jQUery.grep来归档一个JSON对象。在下面的示例中,我根据唯一 id 过滤对象,该 id 效果很好:请参阅:https://jsfiddle.net/zzwcm9cs/18/

var arrChildOptions2 = [
        {id:1, name:'john'}, 
        {id:2, name:'mike'},
        {id:3, name:'ben'},
        {id:4, name:'brian'},
    ];
var result = jQuery.grep(arrChildOptions2, function( n, i ) {
  return ( n.id === 2);
});
$( "#result" ).text( JSON.stringify(result) );

现在我想根据数组进行过滤,但我真的不知道该怎么做。下面是这个想法(当然是行不通的(。预期结果 id 的 JSON 对象仅包含"John"和"Ben":

var arrChildOptions2 = [
        {id:1, name:'john'}, 
        {id:2, name:'mike'},
        {id:3, name:'ben'},
        {id:4, name:'brian'},
    ];
var myArray = [1,3];
var result = jQuery.grep(arrChildOptions2, function( n, i ) {
  return ( n.id IN myArray);  <<<-- How to do it ?
});
$( "#result" ).text( JSON.stringify(result) );

我找到了答案:https://jsfiddle.net/6ma42602/

var arrChildOptions2 = [
        {id:1, name:'john'}, 
        {id:2, name:'mike'},
        {id:3, name:'ben'},
        {id:4, name:'brian'},
    ];
var myArray = [1,3];
var result = jQuery.grep(arrChildOptions2, function( n, i ) {
  //return ( n.id === 2);
  return myArray.indexOf(n.id) > -1;
});
$( "#result" ).text( JSON.stringify(result) );

最新更新