Sembra che filter() e filterProperty() siano abbastanza simili, entrambe sono funzioni Enumerable che restituiscono un array filtrato.Emberjs filter() versus filterProperty()
In quali circostanze dovrei usare l'uno o l'altro?
Sembra che filter() e filterProperty() siano abbastanza simili, entrambe sono funzioni Enumerable che restituiscono un array filtrato.Emberjs filter() versus filterProperty()
In quali circostanze dovrei usare l'uno o l'altro?
Aggiornamento:filterProperty()
è stato sostituito da filterBy()
. L'utilizzo è lo stesso, vedi il commento qui sotto.
filterBy()
è una scorciatoia per filter()
che consente di filtrare rapidamente un'enumerazione basata su una proprietà specificata degli elementi dell'enumerabile. Utilizzare filter()
se è necessario fare qualcosa di più complicato o fuori dall'ordinario in cui non è possibile utilizzare filterBy()
.
Per esempio, supponendo che hanno avuto un array di oggetti come questo:
[
{firstName: 'Kris', lastName: 'Selden'},
{firstName: 'Luke', lastName: 'Melia'},
{firstName: 'Formerly Alex', lastName: 'Matchneer'}
]
E si voleva avere una proprietà calcolata che utilizza filtrare la matrice per includere solo le persone con il firstName == 'Luke'
:
utilizzando filter()
:
filterComputed: function() {
return this.get('content').filter(function(item, index, enumerable){
return item.firstName == 'Luke';
});
}.property('[email protected]')
utilizzando filterBy()
:
filterByComputed: function() {
return this.get('content').filterBy('firstName', 'Luke');
}.property('[email protected]')
NB 'filterProperty' è stato deprecato in favore di' filterBy'. Stesso uso https://github.com/emberjs/website/pull/882 – andorov