2017-06-20 3 views
1

Ich benutze jQUery.grep, um ein JSON-Objekt zu filerieren. Im hier unten Beispiel filtere ich das Objekt auf eine eindeutige ID basiert, die große arbeitet: Siehe: https://jsfiddle.net/zzwcm9cs/18/jQuery.grep: Wie filtert man basierend auf Array?

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)); 

Nun möchte ich ein Array filtern möchte, basierend auf, aber ich weiß wirklich nicht, wie es zu tun . Hier unten die Idee (die natürlich nicht funktioniert). Das erwartete Ergebnis id nur ein JSON-Objekt zu haben, "John" und "Ben" enthält:

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)); 

Antwort

0

ich die Antwort gefunden: 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)); 
Verwandte Themen