32 lines
		
	
	
		
			754 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			754 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * The base implementation of `_.slice` without an iteratee call guard.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {Array} array The array to slice.
 | 
						|
 * @param {number} [start=0] The start position.
 | 
						|
 * @param {number} [end=array.length] The end position.
 | 
						|
 * @returns {Array} Returns the slice of `array`.
 | 
						|
 */
 | 
						|
function baseSlice(array, start, end) {
 | 
						|
  var index = -1,
 | 
						|
      length = array.length;
 | 
						|
 | 
						|
  if (start < 0) {
 | 
						|
    start = -start > length ? 0 : (length + start);
 | 
						|
  }
 | 
						|
  end = end > length ? length : end;
 | 
						|
  if (end < 0) {
 | 
						|
    end += length;
 | 
						|
  }
 | 
						|
  length = start > end ? 0 : ((end - start) >>> 0);
 | 
						|
  start >>>= 0;
 | 
						|
 | 
						|
  var result = Array(length);
 | 
						|
  while (++index < length) {
 | 
						|
    result[index] = array[index + start];
 | 
						|
  }
 | 
						|
  return result;
 | 
						|
}
 | 
						|
 | 
						|
export default baseSlice;
 |