bifurcateValues

Split array element values into two groups.

Usage

var bifurcateValues = require( '@stdlib/array/base/bifurcate-values' );

bifurcateValues( x, filter )

Splits array element values into two groups.

var x = [ 'beep', 'boop', 'foo', 'bar' ];
var filter = [ true, true, false, true ];

var out = bifurcateValues( x, filter );
// returns [ [ 'beep', 'boop', 'bar' ], [ 'foo' ] ]

Notes

  • If an element in filter is truthy, the corresponding element in the input array x belongs to the first group; otherwise, the input array element belongs to the second group.

Examples

var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var take = require( '@stdlib/array/base/take-indexed' );
var bifurcateValues = require( '@stdlib/array/base/bifurcate-values' );

// Define an initial array of values:
var values = [ 'beep', 'boop', 'foo', 'bar', 'woot', 'woot' ];

// Sample from the initial array to generate a random collection:
var indices = discreteUniform( 100, 0, values.length-1, {
    'dtype': 'generic'
});
var x = take( values, indices );
// returns [...]

// Randomly assign collection values to groups:
var groups = discreteUniform( x.length, 0, 1, {
    'dtype': 'generic'
});

// Group the values:
var out = bifurcateValues( x, groups );
// returns [...]

console.log( out );
Did you find this page helpful?