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 );
      // => 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'
        }
    */