1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
{{alias}}( collection, [options,] predicate )
Splits values into two groups according to a predicate function.
When invoked, the predicate function is provided two arguments:
- `value`: collection value
- `index`: collection index
If a predicate function returns a truthy value, a collection value is
placed in the first group; otherwise, a collection value is placed in the
second group.
If provided an empty collection, the function returns an empty array.
Parameters
----------
collection: Array|TypedArray|Object
Input collection to group. If provided an object, the object must be
array-like (excluding strings and functions).
options: Object (optional)
Options.
options.thisArg: any (optional)
Execution context.
options.returns: string (optional)
If `values`, values are returned; if `indices`, indices are returned; if
`*`, both indices and values are returned. Default: 'values'.
predicate: Function
Predicate function indicating which group an element in the input
collection belongs to.
Returns
-------
out: Array<Array>|Array
Group results.
Examples
--------
> function predicate( v ) { return v[ 0 ] === 'b'; };
> var collection = [ 'beep', 'boop', 'foo', 'bar' ];
> var out = {{alias}}( collection, predicate )
[ [ 'beep', 'boop', 'bar' ], [ 'foo' ] ]
// Output group results as indices:
> var opts = { 'returns': 'indices' };
> out = {{alias}}( collection, opts, predicate )
[ [ 0, 1, 3 ], [ 2 ] ]
// Output group results as index-value pairs:
> opts = { 'returns': '*' };
> out = {{alias}}( collection, opts, predicate )
[ [ [0, 'beep'], [1, 'boop'], [3, 'bar'] ], [ [2, 'foo' ] ] ]
See Also
--------
|