Фильтр Emberjs() по сравнению с фильтромProperty() - программирование
Подтвердить что ты не робот

Фильтр Emberjs() по сравнению с фильтромProperty()

Похоже, что filter() и filterProperty() довольно похожи, оба являются возвращаемыми функциями, возвращающимися фильтрованный массив.

В каких обстоятельствах я должен использовать один или другой?

4b9b3361

Ответ 1

Обновление: filterProperty() было заменено на filterBy(). Использование одинаково, см. Комментарий ниже.

filterBy() - это ярлык для filter(), который позволяет быстро фильтровать перечислимое на основе указанного свойства элементов перечислимого. Используйте filter(), если вам нужно сделать что-то более сложное или необычное, если вы не можете использовать filterBy().

Например, если у вас есть массив таких объектов:

[
  {firstName: 'Kris', lastName: 'Selden'},
  {firstName: 'Luke', lastName: 'Melia'},
  {firstName: 'Formerly Alex', lastName: 'Matchneer'}
]

И вы хотели иметь вычисленное свойство, которое использует фильтр, чтобы включать только людей с firstName == 'Luke':

с помощью filter():

filterComputed: function() {
  return this.get('content').filter(function(item, index, enumerable){
    return item.firstName == 'Luke';
  });
}.property('[email protected]')

с помощью filterBy():

filterByComputed: function() {
  return this.get('content').filterBy('firstName', 'Luke');
}.property('[email protected]')

Пример JSBin