arrayWith

Return a new array with the element at the specified index replaced with a provided value.

Usage

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

arrayWith( x, index, value )

Returns a new array with the element at the specified index replaced with a provided value.

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

var out = arrayWith( x, 0, 5 );
// returns [ 5, 2, 3, 4 ]

out = arrayWith( x, -1, 6 );
// returns [ 1, 2, 3, 6 ]

The function accepts the following arguments:

  • x: an input array.
  • index: element index.
  • value: replacement value.

arrayWith.assign( x, index, value, out, stride, offset )

Copies elements from one array to another array and sets the element at the specified index to a provided value.

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

var out = [ 0, 0, 0, 0 ];
var arr = arrayWith.assign( x, 0, 5, out, 1, 0 );
// returns [ 5, 2, 3, 4 ]

var bool = ( arr === out );
// returns true

The function accepts the following arguments:

  • x: an input array.
  • index: element index.
  • value: replacement value.
  • out: output array.
  • stride: output array stride.
  • offset: output array offset.

Notes

  • If provided an array-like object having a with method, the arrayWith function defers execution to that method and assumes that the method has the following signature:

    x.with( index, value )
    

    If provided an array-like object without a with method, the arrayWith function shallow copies input array data to a new generic array, normalizes a provided index, and sets a specified element.

  • Negative indices are resolved relative to the last array element, with the last element corresponding to -1.

Examples

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

// Define an array:
var opts = {
    'dtype': 'generic'
};
var x = discreteUniform( 5, -100, 100, opts );

// Define an array containing random index values:
var indices = discreteUniform( 100, -x.length, x.length-1, opts );

// Define an array with random values to set:
var values = discreteUniform( indices.length, -10000, 10000, opts );

// Randomly set elements in the input array:
var i;
for ( i = 0; i < indices.length; i++ ) {
    console.log( 'x = [%s]', arrayWith( x, indices[ i ], values[ i ] ).join( ',' ) );
}
Did you find this page helpful?