|
|
- import _curry2 from "./internal/_curry2.js";
- import slice from "./slice.js";
- /**
- * Returns a new list containing the last `n` elements of a given list, passing
- * each value to the supplied predicate function, and terminating when the
- * predicate function returns `false`. Excludes the element that caused the
- * predicate function to fail. The predicate function is passed one argument:
- * *(value)*.
- *
- * @func
- * @memberOf R
- * @since v0.16.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.dropLastWhile, R.addIndex
- * @example
- *
- * const isNotOne = x => x !== 1;
- *
- * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]
- *
- * R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'
- */
-
- var takeLastWhile =
- /*#__PURE__*/
- _curry2(function takeLastWhile(fn, xs) {
- var idx = xs.length - 1;
-
- while (idx >= 0 && fn(xs[idx])) {
- idx -= 1;
- }
-
- return slice(idx + 1, Infinity, xs);
- });
-
- export default takeLastWhile;
|