Operador spread

O operador spread permite clonar ou copiar ou expandir objetos ou arrays, de uma forma simples.

Operador spread e arrays

Sintaxe:

let clone_arr = [... nome_array [, ... nome_array_2] [, [... nome_array_n]

Exemplo 1:

      const nrs = [3, 5, 7, 9];

      //Obtem clone do array nrs:
      const arr = [...nrs];

      console.log(arr); //Output: [3, 5, 7, 9]

Exemplo 2:

Neste exemplo, usamos o operador spread para copiar e juntar dois arrays, arr1 e arr2, num só chamado arr. Os arrays arr1 e arr2 mantêm-se inalterados:

let arr1 = [1, 2, 3]; 
let arr2 = [4, 5];
 
let arr = [...arr1, ...arr2]; 

console.log(arr); //Output: [1, 2, 3, 4, 5]

Exemplo 3:

Podemos clonar e expandir o array clonado com novos elementos:

     const nrs = [3, 5, 7, 9];

     const arr = [...nrs, 11, 13];

     console.log(arr);  //Output: [3, 5, 7, 9, 11, 13]

Operador spread e objetos

O operador spread também pode ser usados em objetos.

Sintaxe:

let combined_obj = {…obj1 [, … obj2] [, ...objn]};

Exemplo 1:

let obj1 = { 
   nome: "Xico", 
};
 
let obj = { ...obj1 }; 

console.log(obj);  //nome: Xico

Exemplo 2:

Podemos combinar dois objetos num só, usando o operador spread:

let obj1 = { 
   nome: "Xico", 
}; 
 
let obj2 = { 
   morada: "Lisboa", 
}; 
 
let obj = { ...obj1, ...obj2 }; 

console.log(obj);  //nome: Xico, morada: Lisboa