Es scheint wie filter() und filterProperty() sind sehr ähnlich, beide sind Enumerable-Funktionen, die ein gefiltertes Array zurückgeben.Emberjs filter() versus filterProperty()
Unter welchen Umständen sollte ich das eine oder andere verwenden?
Es scheint wie filter() und filterProperty() sind sehr ähnlich, beide sind Enumerable-Funktionen, die ein gefiltertes Array zurückgeben.Emberjs filter() versus filterProperty()
Unter welchen Umständen sollte ich das eine oder andere verwenden?
Aktualisierung:filterProperty()
wurde durch filterBy()
ersetzt. Die Verwendung ist die gleiche, siehe Kommentar unten.
filterBy()
ist eine Verknüpfung für filter()
, mit der Sie schnell ein Enumerable basierend auf einer angegebenen Eigenschaft der Elemente des Enumerable filtern können. Verwenden Sie filter()
, wenn Sie etwas komplizierter oder ungewöhnliches tun müssen, wo Sie filterBy()
nicht verwenden können.
Zum Beispiel Sie unter der Annahme hatte ein Array von Objekten wie folgt aus:
[
{firstName: 'Kris', lastName: 'Selden'},
{firstName: 'Luke', lastName: 'Melia'},
{firstName: 'Formerly Alex', lastName: 'Matchneer'}
]
Und Sie wollten eine berechnete Eigenschaft haben, die das Array verwendet filtern, um nur die Menschen sind mit dem firstName == 'Luke'
:
filter()
mit:
filterComputed: function() {
return this.get('content').filter(function(item, index, enumerable){
return item.firstName == 'Luke';
});
}.property('[email protected]')
mit filterBy()
:
filterByComputed: function() {
return this.get('content').filterBy('firstName', 'Luke');
}.property('[email protected]')
NB 'filterProperty' wurde zugunsten von' filterBy' veraltet. Gleiche Verwendung. https://github.com/emberjs/website/pull/882 – andorov