Olá pessoal aqui vai alguns exemplos simples de operações como cópia, expandir, merge e rest com objetos e arrays
expandindo array:
const arr1 = [1, 2, 3];
console.log(arr1); // [1 2 3]
const arr2 = [...arr1, 4, 5, 6];
console.log(...arr2); // [1 2 3 4 5 6]
expandindo objeto:
const obj1 = { a: 1, b: 2, c: 3 };
console.log(obj1); // { a: 1, b: 2, c: 3 }
const obj2 = { ...obj1, d: 4, e: 5, f: 6 };
console.log(obj2); // { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }
fazendo cópia de array:
const obj1 = { a: 1, b: 2, c: 3 };
console.log(obj1); // { a: 1, b: 2, c: 3 }
const obj2 = { ...obj1, d: 4, e: 5, f: 6 };
console.log(obj2); // { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }
obs:Mesmo que arr1 e arr2 tenham o mesmo conteúdo ([1, 2, 3]), eles são arrays diferentes e, portanto, têm referências de memória diferentes. Ou seja, arr1 e arr2 não apontam para o mesmo local na memória. Por isso retorna false indicando que eles não são iguais
fazendo cópia de objeto:
const obj1 = { a: 1, b: 2, c: 3 };
const obj2 = { ...obj1 };
console.log("obj2", obj2); // { a: 1, b: 2, c: 3 }
console.log("obj1==obj2", obj1==obj2); // false
merge de arrays:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [...arr1, ...arr2];
console.log(arr3); // [1, 2, 3, 4, 5, 6]
merge de objetos:
const obj1 = { a: 1, b: 2, c: 3 };
const obj2 = { d: 4, e: 5, f: 6 };
const obj3 = { ...obj1, ...obj2 };
console.log(obj3); //{a: 1, b: 2, c: 3, d: 4, e: 5, f: 6}
operador rest (resto):
let p = {
name: 'John',
age: 30,
city: 'New York',
country: 'USA'
};
let { name, age, ...restoDoObjeto } = p;
console.log(name, age);
console.log("restoDoObjeto: ", restoDoObjeto); //resposta: John 30
//restoDoObjeto: { city: 'New York', country: 'USA' }
obs: quase o oposto do spread, é usado para extrair propriedades de um objeto e para coletar as propriedades restantes em um novo objeto
Top comments (0)