function(index) {
    var returnValue = -1,
        self = this;

    this._findOperation(index, function (operation, operationIndex, rangeStart, rangeEnd, seenInSubArray) {
      if (operation.type === RETAIN) {
        returnValue = seenInSubArray + (index - rangeStart);
      }

      if (operation.count > 1) {
        --operation.count;
      } else {
        self._operations.splice(operationIndex, 1);
        self._composeAt(operationIndex);
      }
    }, function() {
      throw new Ember.Error("Can't remove an item that has never been added.");
    });

    return returnValue;
  }
function(index) {
    var returnValue = -1,
        self = this;

    this._findOperation(index, function (operation, operationIndex, rangeStart, rangeEnd, seenInSubArray) {
      if (operation.type === RETAIN) {
        returnValue = seenInSubArray + (index - rangeStart);
      }

      if (operation.count > 1) {
        --operation.count;
      } else {
        self._operations.splice(operationIndex, 1);
        self._composeAt(operationIndex);
      }
    }, function() {
      throw new Ember.Error("Can't remove an item that has never been added.");
    });

    return returnValue;
  }
function ( index ) { var returnValue = - 1 , self = this ; this . _findOperation ( index , function ( operation , operationIndex , rangeStart , rangeEnd , seenInSubArray ) { if ( operation . type === RETAIN ) { returnValue = seenInSubArray + ( index - rangeStart ) ; } if ( operation . count > 1 ) { -- operation . count ; } else { self . _operations . splice ( operationIndex , 1 ) ; self . _composeAt ( operationIndex ) ; } } , function ( ) { throw new Ember . Error ( "Can't remove an item that has never been added." ) ; } ) ; return returnValue ; }
Track that an item was removed from the tracked array.

@method removeItem

@param {number} index The index of the item in the tracked array.

@return {number} The index of the item in the subarray, or `-1` if the item
was not in the subarray.
Track that an item was removed from the tracked array .