code: function filter(array, callback, thisArg) {
      var result;
  
      if (callback == 'successful') {
        // callback to exclude those that are errored, unrun, or have hz of Infinity
        callback = function(bench) { return bench.cycles && isFinite(bench.hz); };
      }
      else if (callback == 'fastest' || callback == 'slowest') {
        // get successful, sort by period + margin of error, and filter fastest/slowest
        result = filter(array, 'successful').sort(function(a, b) {
          a = a.stats; b = b.stats;
          return (a.mean + a.moe > b.mean + b.moe ? 1 : -1) * (callback == 'fastest' ? 1 : -1);
        });
        result = filter(result, function(bench) {
          return result[0].compare(bench) == 0;
        });
      }
      return result || reduce(array, function(result, value, index) {
        return callback.call(thisArg, value, index, array) ? (result.push(value), result) : result;
      }, []);
    }
docs: A generic `Array#filter` like method.
  
  @static
  @memberOf Benchmark
  @param {Array} array The array to iterate over.
  @param {Function|String} callback The function/alias called per iteration.
  @param {Mixed} thisArg The `this` binding for the callback.
  @returns {Array} A new array of values that passed callback filter.
  @example
  
  // get odd numbers
  Benchmark.filter([1, 2, 3, 4, 5], function(n) {
  return n % 2;
  }); // -> [1, 3, 5];
  
  // get fastest benchmarks
  Benchmark.filter(benches, 'fastest');
  
  // get slowest benchmarks
  Benchmark.filter(benches, 'slowest');
  
  // get benchmarks that completed without erroring
  Benchmark.filter(benches, 'successful');