code: function(callback, target) {
      var ret = Ember.A([]);
      this.forEach(function(x, idx, i) {
        if (callback.call(target, x, idx, i)) ret.push(x);
      });
      return ret ;
    }
docs: Returns an array with all of the items in the enumeration that the passed
  function returns true for. This method corresponds to `filter()` defined in
  JavaScript 1.6.
  
  The callback method you provide should have the following signature (all
  parameters are optional):
  
  ```javascript
  function(item, index, enumerable);
  ```
  
  - `item` is the current item in the iteration.
  - `index` is the current index in the iteration.
  - `enumerable` is the enumerable object itself.
  
  It should return the `true` to include the item in the results, `false`
  otherwise.
  
  Note that in addition to a callback, you can also pass an optional target
  object that will be set as `this` on the context. This is a good way
  to give your iterator function access to the current object.
  
  @method filter
  @param {Function} callback The callback to execute
  @param {Object} [target] The target object to use
  @return {Array} A filtered array.