dedupe

Remove consecutive duplicated values.

Usage

var dedupe = require( '@stdlib/array/base/dedupe' );

dedupe( x, limit, equalNaNs )

Removes consecutive duplicated values.

var x = [ 1, 1, 2, 3, 3 ];

var y = dedupe( x, 1, false );
// returns [ 1, 2, 3 ]

var bool = ( x === y );
// returns true

When equalNaNs is false, NaN values are considered distinct, and, when equalNaNs is true, NaN values are considered equal.

var x = [ NaN, NaN, 2, NaN, NaN ];

var y1 = dedupe( x, 1, false );
// returns [ NaN, NaN, 2, NaN, NaN ]

var y2 = dedupe( x, 1, true );
// returns [ NaN, 2, NaN ]

To allow consecutive duplicate values up to a specified limit, provide a limit argument greater than one.

var x = [ 1, 1, 1, 2, 2, 3, 3, 3 ];

var y = dedupe( x, 2, false );
// returns [ 1, 1, 2, 2, 3, 3 ]

Notes

  • The function mutates the input array.

Examples

var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var dedupe = require( '@stdlib/array/base/dedupe' );

// Create an array of random numbers:
var x = discreteUniform( 30, 0, 5, {
    'dtype': 'generic'
});
// returns [...]

// Remove consecutive duplicates:
var y = dedupe( x, 1, false );
// returns [...]

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