Projekt

Obecné

Profil

Stáhnout (1.38 KB) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
var baseIteratee = require('./_baseIteratee'),
2
    baseWhile = require('./_baseWhile');
3
4
/**
5
 * Creates a slice of `array` excluding elements dropped from the end.
6
 * Elements are dropped until `predicate` returns falsey. The predicate is
7
 * invoked with three arguments: (value, index, array).
8
 *
9
 * @static
10
 * @memberOf _
11
 * @since 3.0.0
12
 * @category Array
13
 * @param {Array} array The array to query.
14
 * @param {Function} [predicate=_.identity] The function invoked per iteration.
15
 * @returns {Array} Returns the slice of `array`.
16
 * @example
17
 *
18
 * var users = [
19
 *   { 'user': 'barney',  'active': true },
20
 *   { 'user': 'fred',    'active': false },
21
 *   { 'user': 'pebbles', 'active': false }
22
 * ];
23
 *
24
 * _.dropRightWhile(users, function(o) { return !o.active; });
25
 * // => objects for ['barney']
26
 *
27
 * // The `_.matches` iteratee shorthand.
28
 * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });
29
 * // => objects for ['barney', 'fred']
30
 *
31
 * // The `_.matchesProperty` iteratee shorthand.
32
 * _.dropRightWhile(users, ['active', false]);
33
 * // => objects for ['barney']
34
 *
35
 * // The `_.property` iteratee shorthand.
36
 * _.dropRightWhile(users, 'active');
37
 * // => objects for ['barney', 'fred', 'pebbles']
38
 */
39
function dropRightWhile(array, predicate) {
40
  return (array && array.length)
41
    ? baseWhile(array, baseIteratee(predicate, 3), true, true)
42
    : [];
43
}
44
45
module.exports = dropRightWhile;