36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
|
import _checkForMethod from "./internal/_checkForMethod.js";
|
||
|
import _curry3 from "./internal/_curry3.js";
|
||
|
/**
|
||
|
* Returns the elements of the given list or string (or object with a `slice`
|
||
|
* method) from `fromIndex` (inclusive) to `toIndex` (exclusive).
|
||
|
*
|
||
|
* Dispatches to the `slice` method of the third argument, if present.
|
||
|
*
|
||
|
* @func
|
||
|
* @memberOf R
|
||
|
* @since v0.1.4
|
||
|
* @category List
|
||
|
* @sig Number -> Number -> [a] -> [a]
|
||
|
* @sig Number -> Number -> String -> String
|
||
|
* @param {Number} fromIndex The start index (inclusive).
|
||
|
* @param {Number} toIndex The end index (exclusive).
|
||
|
* @param {*} list
|
||
|
* @return {*}
|
||
|
* @example
|
||
|
*
|
||
|
* R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']
|
||
|
* R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']
|
||
|
* R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']
|
||
|
* R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']
|
||
|
* R.slice(0, 3, 'ramda'); //=> 'ram'
|
||
|
*/
|
||
|
|
||
|
var slice =
|
||
|
/*#__PURE__*/
|
||
|
_curry3(
|
||
|
/*#__PURE__*/
|
||
|
_checkForMethod('slice', function slice(fromIndex, toIndex, list) {
|
||
|
return Array.prototype.slice.call(list, fromIndex, toIndex);
|
||
|
}));
|
||
|
|
||
|
export default slice;
|