{{alias}}( collection, [options,] filter ) Splits values into two groups. If an element in `filter` is truthy, then the corresponding element in the input collection belongs to the first group; otherwise, the collection element belongs to 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.returns: string (optional) If `values`, values are returned; if `indices`, indices are returned; if `*`, both indices and values are returned. Default: 'values'. filter: Array|TypedArray|Object A collection indicating which group an element in the input collection belongs to. If an element in `filter` is truthy, the corresponding element in `collection` belongs to the first group; otherwise, the collection element belongs to the second group. If provided an object, the object must be array-like (excluding strings and functions). Returns ------- out: Array|Array Group results. Examples -------- > var collection = [ 'beep', 'boop', 'foo', 'bar' ]; > var f = [ true, true, false, true ]; > var out = {{alias}}( collection, f ) [ [ 'beep', 'boop', 'bar' ], [ 'foo' ] ] > f = [ 1, 1, 0, 1 ]; > out = {{alias}}( collection, f ) [ [ 'beep', 'boop', 'bar' ], [ 'foo' ] ] // Output group results as indices: > f = [ true, true, false, true ]; > var opts = { 'returns': 'indices' }; > out = {{alias}}( collection, opts, f ) [ [ 0, 1, 3 ], [ 2 ] ] // Output group results as index-element pairs: > opts = { 'returns': '*' }; > out = {{alias}}( collection, opts, f ) [ [ [0, 'beep'], [1, 'boop'], [3, 'bar'] ], [ [2, 'foo'] ] ] See Also --------