build/rekord.js
function(value, delaySort, equals)
  {
    var i = this.indexOf( value, equals );
    var element = this[ i ];

    if ( i !== -1 )
    {
      this.removeAt( i, delaySort );
    }

    return element;
  }
function(value, delaySort, equals)
  {
    var i = this.indexOf( value, equals );
    var element = this[ i ];

    if ( i !== -1 )
    {
      this.removeAt( i, delaySort );
    }

    return element;
  }
function ( value , delaySort , equals ) { var i = this . indexOf ( value , equals ) ; var element = this [ i ] ; if ( i !== - 1 ) { this . removeAt ( i , delaySort ) ; } return element ; }
Removes the given value from this collection if it exists - sorting the
collection if a comparator is set on this collection and `delaySort` is not
specified or a true value.

```javascript
var c = Rekord.collect(1, 2, 3, 4);
c.remove( 1 ); // 1
c.remove( 5 ); // undefined
c // [2, 3, 4]
```

@method
@memberof Rekord.Collection#
@param {Any} value -
The value to remove from this collection if it exists.
@param {Boolean} [delaySort=false] -
Whether automatic sorting should be delayed until the user manually
calls {@link Rekord.Collection#sort sort}.
@param {equalityCallback} [equals=Rekord.equalsStrict] -
The function which determines whether one of the elements that exist in
this collection are equivalent to the given value.
@return {Any} -
The element removed from this collection.
@emits Rekord.Collection#remove
@emits Rekord.Collection#sort
Removes the given value from this collection if it exists - sorting the collection if a comparator is set on this collection and delaySort is not specified or a true value .