code: function first(arr, cb, thisArg) {
    if (arguments.length === 1) {
      return arr[0];
    }
    if (typeOf(cb) === 'string') {
      return findFirst(arr, isType(cb));
    }
    return findFirst(arr, cb, thisArg);
  }
docs: Return the first element in `array`, or, if a callback is passed,
  return the first value for which the returns true.
  
  ```js
  var arr = ['a', {a: 'b'}, 1, one, 'b', 2, {c: 'd'}, two, 'c'];
  
  utils.first(arr);
  //=> 'a'
  
  utils.first(arr, isType('object'));
  //=> {a: 'b'}
  
  utils.first(arr, 'object');
  //=> {a: 'b'}
  ```
  
  @param  {Array} `array`
  @return {*}
  @api public