code: function(f, index, loop) {
        var result = [];
        arrayEach(this, function(el, i, arr) {
          if(multiMatch(el, f, arr, [el, i, arr])) {
            result.push(el);
          }
        }, index, loop);
        return result;
      }
docs: *
  @method findAll(<f>, [index] = 0, [loop] = false)
  @returns Array
  @short Returns all elements that match <f>.
  @extra <f> will match a string, number, array, object, or alternately test against a function or regex. Starts at [index], and will continue once from index = 0 if [loop] is true. This method implements @array_matching.
  @example
  
  +   [{a:1,b:2},{a:1,b:3},{a:2,b:4}].findAll(function(n) {
  return n['a'] == 1;
  });                                        -> [{a:1,b:3},{a:1,b:4}]
  ['cuba','japan','canada'].findAll(/^c/)    -> 'cuba','canada'
  ['cuba','japan','canada'].findAll(/^c/, 2) -> 'canada'
  
  *