|
|
- import _curry2 from "./internal/_curry2.js";
- import _dispatchable from "./internal/_dispatchable.js";
- import _xdropWhile from "./internal/_xdropWhile.js";
- import slice from "./slice.js";
- /**
- * Returns a new list excluding the leading elements of a given list which
- * satisfy the supplied predicate function. It passes each value to the supplied
- * predicate function, skipping elements while the predicate function returns
- * `true`. The predicate function is applied to one argument: *(value)*.
- *
- * Dispatches to the `dropWhile` method of the second argument, if present.
- *
- * Acts as a transducer if a transformer is given in list position.
- *
- * @func
- * @memberOf R
- * @since v0.9.0
- * @category List
- * @sig (a -> Boolean) -> [a] -> [a]
- * @sig (a -> Boolean) -> String -> String
- * @param {Function} fn The function called per iteration.
- * @param {Array} xs The collection to iterate over.
- * @return {Array} A new array.
- * @see R.takeWhile, R.transduce, R.addIndex
- * @example
- *
- * const lteTwo = x => x <= 2;
- *
- * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]
- *
- * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'
- */
-
- var dropWhile =
- /*#__PURE__*/
- _curry2(
- /*#__PURE__*/
- _dispatchable(['dropWhile'], _xdropWhile, function dropWhile(pred, xs) {
- var idx = 0;
- var len = xs.length;
-
- while (idx < len && pred(xs[idx])) {
- idx += 1;
- }
-
- return slice(idx, Infinity, xs);
- }));
-
- export default dropWhile;
|