2016-06-02 7 views
0

Gibt es eine eingebaute Möglichkeit, den $ filter-Dienst zu verwenden, um ein Array mit nur einer bestimmten Eigenschaft aus einem Array von Objekten abzurufen?

var contacts = [ 
    { 
     name: 'John', 
     id: 42 
    }, 
    { 
     name: 'Mary', 
     id: 43 
    }, 
]; 

var ids = $filter('filter')(contacts, /* my magical parameter */); 
console.log(ids); //output [42, 43] 

Jede Hilfe oder einen Link zu einem verwandten Thema wäre sehr willkommen, dank

+2

[ 'contacts.map (o => o.id);'] (https://jsfiddle.net/tusharj/bfx5qxww/) – Tushar

+0

zeigen den Code anstelle von '/ * my magische Parameter */'um Ihre Frage und Ihren Aufwand klar zu verstehen. –

+0

Der Filter "Filter" gibt immer das vollständig übereinstimmende Objekt zurück. Sie müssen einen benutzerdefinierten Filter erstellen. oder benutze einfach vanilla javascript, wie 'map', wie Tushar es vorschlägt – Rhumborl

Antwort

0

Sie nicht verwenden $ Filter-Service von AngularJS benötigen, können Sie .map() -Methode (Kern JS verwenden, I bedeuten ES5):

var contacts = [ 
    { 
     name: 'John', 
     id: 42 
    }, 
    { 
     name: 'Mary', 
     id: 43 
    }, 
]; 

var ids = contacts.map(function(contact) { 
    return contact.id; 
}); 

console.log(ids); //output [42, 43]