Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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 );