| var _curry2 = |
| /*#__PURE__*/ |
| require("./internal/_curry2"); |
| |
| var slice = |
| /*#__PURE__*/ |
| require("./slice"); |
| /** |
| * 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); |
| }); |
| |
| module.exports = takeLastWhile; |