Thursday, December 26, 2024
Google search engine
HomeLanguagesJavascriptHow to copy properties from one object to another in ES6 ?

How to copy properties from one object to another in ES6 ?

The properties of one object can be copied into another object through different methods. Here are some of those methods.  

Object.assign(): By using the Object.assign() method, all enumerable properties of one or more source objects are copied to the target object. This method returns the modified target object. The properties of the target object are overwritten if they have the same key as properties in the sources. Properties from later sources overwrite properties from earlier sources. Object.assign() only copies enumerable and own properties from one object to another. As a result, it invokes getters and setters on the source and target. As a result, it assigns properties rather than copies or defines new ones. The merge sources may contain getters, thus making it unsuitable for merging new properties into prototypes.

Syntax:

Object.assign(target, ...sources)

 

Example:

JavaScript




<script>
    let obj1 = { a: 1, b: 2 };
    let obj2 = { a: 3, c: 4 };
    let obj3 = { b: 5, d: 6 };
    
    // Target object itself is changed.
    let targetobj1 = Object.assign(obj1, obj2);
    
    // Here the obj1 and targetobj1 both are same
    console.log(obj1);
    console.log(targetobj1);
    
    // Passing multiple objects and copy
    // to the target obj
    let targetobj2 = Object.assign(obj1, obj2, obj3);
    console.log(obj1);
    console.log(targetobj2);
</script>


Output:

{
    a: 3,
    b: 2,
    c: 4
}
{
    a: 3,
    b: 2,
    c: 4
}
{
    a: 3,
    b: 5,
    c: 4,
    d: 6
}
{
    a: 3,
    b: 5,
    c: 4,
    d: 6
}

Using Spread Operator: An array expression or string may have spread syntax (…) to expand where there are no or multiple arguments (for function calls) or elements (for array literals), or an object expression may be expanded where there are no or multiple key-value pairs (for object literals).

JavaScript




<script>
    let obj1 = { a: 1, b: 2 };
    let obj2 = { a: 3, c: 4 };
    let obj3 = { b: 5, d: 6 };
    
    // (...) is syntax of spread operator
    let targetobj = { ...obj1, ...obj2, ...obj3 };
    console.log(targetobj);
</script>
  


Output:

{
    a: 3,
    b: 5,
    c: 4,
    d: 6
}

By using for loop: It is necessary to iterate over the property of the source object (i.e. obj2) and assign the property with the value to target object obj1. But this method is limited to two objects if we use one for loop.

JavaScript




<script>
    let obj1 = { a: 1, b: 2 };
    let obj2 = { a: 3, c: 4 };
    for (let key in obj2) {
        obj1[key] = obj2[key];
    }
    console.log(obj1);
</script>


Output:

{
    a: 3,
    b: 2,
    c: 4
}

Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, neveropen Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!

RELATED ARTICLES

Most Popular

Recent Comments