function rest(array, callback, thisArg) {
      if (typeof callback != 'number' && callback != null) {
        var n = 0,
            index = -1,
            length = array ? array.length : 0;

        callback = lodash.createCallback(callback, thisArg, 3);
        while (++index < length && callback(array[index], index, array)) {
          n++;
        }
      } else {
        n = (callback == null || thisArg) ? 1 : nativeMax(0, callback);
      }
      return slice(array, n);
    }
The opposite of `_.initial` this method gets all but the first element or
first `n` elements of an array. If a callback function is provided elements
at the beginning of the array are excluded from the result as long as the
callback returns truey. The callback is bound to `thisArg` and invoked
with three arguments; (value, index, array).

If a property name is provided for `callback` the created "_.pluck" style
callback will return the property value of the given element.

If an object is provided for `callback` the created "_.where" style callback
will return `true` for elements that have the properties of the given object,
else `false`.

@static
@memberOf _
@alias drop, tail
@category Arrays
@param {Array} array The array to query.
@param {Function|Object|number|string} [callback=1] The function called
 per element or the number of elements to exclude. If a property name or
 object is provided it will be used to create a "_.pluck" or "_.where"
 style callback, respectively.
@param {*} [thisArg] The `this` binding of `callback`.
@returns {Array} Returns a slice of `array`.
@example

_.rest([1, 2, 3]);
// => [2, 3]

_.rest([1, 2, 3], 2);
// => [3]

_.rest([1, 2, 3], function(num) {
  return num < 3;
});
// => [3]

var characters = [
  { 'name': 'barney',  'blocked': true,  'employer': 'slate' },
  { 'name': 'fred',    'blocked': false,  'employer': 'slate' },
  { 'name': 'pebbles', 'blocked': true, 'employer': 'na' }
];

// using "_.pluck" callback shorthand
_.pluck(_.rest(characters, 'blocked'), 'name');
// => ['fred', 'pebbles']

// using "_.where" callback shorthand
_.rest(characters, { 'employer': 'slate' });
// => [{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }]