Tres puntos útiles: el resto y la dispersión en JavaScript
Lukasz Kolko
ECMAScript 2015 nos trajo muchas novedades, que se tradujeron en un gran número de mejoras. Hoy vamos a echar un vistazo más de cerca a dos características que nos hacen la vida más fácil. Conoce los parámetros de reposo y la sintaxis de propagación.
La sintaxis resto nos permite representar un número indefinido de argumentos como un array. Echa un vistazo a una función que suma todos los argumentos pasados.
El operador spread nos permite expandir objetos iterables en elementos individuales. Esta funcionalidad es opuesta a la que conseguimos con los parámetros restantes. Se puede aplicar a todos los iterables, como arrays, objetos, conjuntos, mapas, etc.
const suma = (x, y, z) => x + y + z;
const números = [1, 2, 3];
console.log(suma(...números)); // 6
Tenga en cuenta que la copia del objeto que se crea es un objeto nuevo con todas las propiedades del objeto original pero ninguna de su información prototípica.
Ten en cuenta que la sintaxis spread crea una copia 'superficial' del objeto, por lo que la propiedad 'wallet' sólo se copiará como referencia al subobjeto original. Para una clonación profunda puedes utilizar el método JSON stringify/parse o el método 'cloneDeep' proporcionado por Lodash dependiendo de la complejidad de tu objeto. En algunos casos este método también puede ser útil:
let personaCopia = { ...persona, cartera = {...persona.cartera}};
Podemos añadir condicionalmente propiedades a un nuevo objeto que estamos creando haciendo uso del operador de dispersión junto con la evaluación de cortocircuito.