benchmarks/scenarios/ember.js
function filterBy(dependentKey, propertyKey, value) {
    var callback;

    if (arguments.length === 2) {
      callback = function (item) {
        return _emberMetalProperty_get.get(item, propertyKey);
      };
    } else {
      callback = function (item) {
        return _emberMetalProperty_get.get(item, propertyKey) === value;
      };
    }

    return filter(dependentKey + '.@each.' + propertyKey, callback);
  }
function filterBy(dependentKey, propertyKey, value) {
    var callback;

    if (arguments.length === 2) {
      callback = function (item) {
        return _emberMetalProperty_get.get(item, propertyKey);
      };
    } else {
      callback = function (item) {
        return _emberMetalProperty_get.get(item, propertyKey) === value;
      };
    }

    return filter(dependentKey + '.@each.' + propertyKey, callback);
  }
function filterBy ( dependentKey , propertyKey , value ) { var callback ; if ( arguments . length === 2 ) { callback = function ( item ) { return _emberMetalProperty_get . get ( item , propertyKey ) ; } ; } else { callback = function ( item ) { return _emberMetalProperty_get . get ( item , propertyKey ) === value ; } ; } return filter ( dependentKey + '.@each.' + propertyKey , callback ) ; }
Filters the array by the property and value

```javascript
var Hamster = Ember.Object.extend({
remainingChores: Ember.computed.filterBy('chores', 'done', false)
});

var hamster = Hamster.create({
chores: [
{ name: 'cook', done: true },
{ name: 'clean', done: true },
{ name: 'write more unit tests', done: false }
]
});

hamster.get('remainingChores'); // [{ name: 'write more unit tests', done: false }]
```

@method filterBy
@for Ember.computed
@param {String} dependentKey
@param {String} propertyKey
@param {*} value
@return {Ember.ComputedProperty} the filtered array
@public
Filters the array by the property and value