build/rekord.js
function(properties)
  {
    var resolver = createPropertyResolver( properties );

    for (var i = 0; i < this.length; i++)
    {
      var resolved = resolver( this[ i ] );

      if ( isValue( resolved ) )
      {
        return resolved;
      }
    }
  }
function(properties)
  {
    var resolver = createPropertyResolver( properties );

    for (var i = 0; i < this.length; i++)
    {
      var resolved = resolver( this[ i ] );

      if ( isValue( resolved ) )
      {
        return resolved;
      }
    }
  }
function ( properties ) { var resolver = createPropertyResolver ( properties ) ; for ( var i = 0 ; i < this . length ; i ++ ) { var resolved = resolver ( this [ i ] ) ; if ( isValue ( resolved ) ) { return resolved ; } } }
Returns the first non-null value in this collection given a property
expression. If no non-null values exist for the given property expression,
then undefined will be returned.

```javascript
var c = Rekord.collect([{x: 5}, {y: 6}, {y: 4}, {z: 7}]);
c.first('y'); // 6
c.first(); // {x: 5}
```

@method
@memberof Rekord.Collection#
@param {propertyResolverInput} [properties] -
The expression which converts one value into another.
@return {Any} -
@see Rekord.createPropertyResolver
@see Rekord.isValue
Returns the first non - null value in this collection given a property expression . If no non - null values exist for the given property expression then undefined will be returned .