Move Property

Move a property from one object to another object.

Usage

var moveProperty = require( '@stdlib/utils/move-property' );

moveProperty( source, prop, target )

Moves a property from one object to another object.

var obj1 = {
    'a': 'b'
};
var obj2 = {};

var bool = moveProperty( obj1, 'a', obj2 );
// returns true

If the operation is successful, the function returns true; otherwise, false.

var obj1 = {
    'a': 'b'
};
var obj2 = {};

var bool = moveProperty( obj1, 'c', obj2 );
// returns false

Notes

  • A transfer is shallow.

    var arr = [ 1, 2, 3 ];
    
    var obj1 = {
        'a': arr
    };
    var obj2 = {};
    
    var bool = moveProperty( obj1, 'a', obj2 );
    console.log( obj2.a === arr );
    // returns true
    
  • The property is deleted from the source object.

  • The property's descriptor is preserved during transfer.

  • If a source property is not configurable, the function throws an Error, as the property cannot be deleted from the source object.

Examples

var moveProperty = require( '@stdlib/utils/move-property' );

var obj1 = {
    'beep': 'boop'
};

var obj2 = {
    'foo': 'bar'
};

var bool = moveProperty( obj1, 'beep', obj2 );
if ( bool === false ) {
    console.log( 'failed to move property' );
}
console.dir( obj1 );
/* =>
    {}
*/
console.dir( obj2 );
/* =>
    {
        'foo': 'bar',
        'beep': 'boop'
    }
*/