2017-02-10 2 views
0

Ich habe ein js Objekt, das Array hat 25 Einträge.Javascript-Filter - Rückgabe von IDs

{    
    id:1, 
    title: 'item1' 
}, 
{    
    id:2, 
    title: 'item2' 
}, 
{    
    id:3, 
    title: 'item3' 
}, 

{    
    id:4, 
    title: 'item4' 
}, 

{    
    id:5, 
    title: 'item5' 
}, 

Ich versuche, 3 Elemente aus den 25, aber machen Sie es zufällig.

Ich filter mein Objekt und filtern sie nach ID.

return this.talents.filter(
      function (talent) { 
      return talent.id === 3 
      }); 

Was ich wirklich tun möchte, ist 3 aus einem Array zurückgeben. Also habe ich versucht, dies ohne Erfolg

$.each([ 1, 2 ], function(index, value) {  
    return this.talents.filter(
     function (talent) { 
     return talent.id === value 
     }); 
}); 

Wie kann ich Filter/wählen Sie ein JS-Objekt durch einen Wert wie diese

+2

Bitte klären Sie Ihr spezifisches Problem oder fügen Sie weitere Details hinzu, um genau das hervorzuheben, was Sie benötigen. Wie es derzeit geschrieben wird, ist es schwer zu sagen, was genau Sie fragen. –

+0

Könnten Sie vielleicht auch etwas Input und Ihre erwartete Ausgabe liefern? – Phillip

Antwort

0

Kombinieren Array.prototype.filter mit Array.prototype.some

var values = [1, 2]; 

return this.talents.filter(function(talent) { 
    return values.some(function(val) { return talent.id === val }); 
}) 

Beispiel:

var values = [1, 2]; 
 
var talents = [ 
 
    { id: 1 }, 
 
    { id: 2 }, 
 
    { id: 3 } 
 
]; 
 

 
var filteredTalents = talents.filter(function(talent) { 
 
    return values.some(function(val) { 
 
    return talent.id === val 
 
    }); 
 
}); 
 

 
console.log(filteredTalents);