Operador de extensión: el operador de extensión o la sintaxis de extensión nos permiten expandir las arrays y los objetos en elementos en el caso de una array y pares clave-valor en el caso de un objeto. La sintaxis extendida está representada por tres puntos (…) en JavaScript.
Sintaxis:
var my_var = [...array];
Beneficios de usar la sintaxis Spread:
1. Nos permite incluir todos los elementos de una array u objeto en una lista de algún tipo. Puede expandir un objeto o una array y almacenar todos los valores en una nueva variable del mismo tipo de datos.
Ejemplo:
JavaScript
<script> // Operating spread syntax to expand an Object var obj1 = { organisation: "GFG", fullForm: "Geeks for Geeks" }; var obj2 = { description: "A learning platform for Geeks." }; var obj3 = {...obj2, ...obj1 }; console.log(obj3); // Operating spread syntax to expand an Array var fruits = ["Mango", "Banana", "Apple"]; var moreFruits = [...arr1, "Orange", "Pineapple", "Watermelon"]; console.log(moreFruits); </script>
Producción:
2. Nos permite copiar todos los elementos de una array ya existente en una nueva array y realizar operaciones push, pop sin siquiera alterar la array anterior.
Ejemplo:
JavaScript
<script> // Copying an array into another // array and operate pop // operation without disturbing // data of first array var arr1 = ['a', 'b', 'c', 'd', 'e']; var arr2 = [...arr1]; console.log("arr1 before applying pop operation:"); console.log(arr1); arr2.pop(); console.log("arr1 & arr2 after applying"+ " pop operation on arr2:"); console.log(arr2); console.log(arr1); </script>
Producción:
3. Puede concatenar una string o fusionar dos o más arrays sin usar la función concat() .
Ejemplo:
JavaScript
<script> // concatenation of two arrays without // concat function using spread syntax var breakfast = ["Bread", "Sandwich", "Fruits"]; var moreBreakfast = ["Salad", "Tea & Coffee"]; console.log("Breakfast before concatenation:"); console.log(breakfast); breakfast = [...breakfast, ...moreBreakfast]; console.log("Breakfast after concatenation:"); console.log(breakfast); </script>
Producción:
4. Nos permite operar funciones matemáticas en una array. Porque no podemos usar funciones matemáticas directamente en arrays. El operador de propagación expande una array de objetos iterables en una lista de argumentos que nos permiten operar las funciones matemáticas y obtener el resultado deseado.
Ejemplo:
JavaScript
<script> // Operating an array in an Math // function using spread operator var arr1 = [99, 50, 130, 1, 98, 23, 66]; console.log("Maximum element of arr1 is:") console.log(Math.max(...arr1)); </script>
Producción:
5. Nos permite hacer cambios en el objeto anidado sin reflejarse en el objeto original
Ejemplo :
Estructura del objeto señalador en objeto anidado
Javascript
let obj = { name:'Geeks for Geeks', add:{ country:"INDIA", state:{ code:"DL", pincode:"129089" } } } let obj2 = {...obj} ///SHALLOW COPY obj2.name = "GFG", console.log(obj2); obj2 = {...obj2,add:{...obj.add}} obj2.add.country = "BHARAT" console.log(obj2) obj2 = {...obj2,add:{...obj2.add,state:{...obj.add.state}}} //DEEP COPY obj2.add.state.pincode = 823687 console.log("original object") console.log(obj); console.log("doing all changes final object") console.log(obj2);
Rest operator: La sintaxis del Rest operator es similar a la sintaxis del operador Spread, donde el operador spread expande una array en sus elementos, por otro lado, la sintaxis rest se usa para recopilar datos y almacenarlos en una sola variable que podemos seguir pasar a una función o puede usar en nuestro código como una variable.
Sintaxis:
function nameOfFunction(...data) { // function statement }
Ejemplo 1: El siguiente ejemplo ilustra el uso de la sintaxis de descanso.
JavaScript
<script> var sum = 0; function Addition(...data) { for(var i = 0; i < data.length; i++) { sum += data[i]; } console.log("Sum of your passed data is:") console.log(sum); } Addition(95, 98, 2, 51, 6); </script>
Producción:
Ejemplo 2:
JavaScript
<script> var pro = 1; function Multiplication(...param) { for(var item = 0; item < param.length; item++) { pro *= param[item]; } if(pro < 100) { console.log("Product is less than 100:"); console.log("Product: ", pro); pro = 1; console.log("Your new product is: "); Multiplication(1, 2, 3, 4, 5); console.log("Product: ", pro); } } Multiplication(1, 2, 3, 4); </script>
Producción:
Las diferencias entre la sintaxis Rest y Spread se incluyen en la siguiente tabla:
Sintaxis extendida | Resto de sintaxis |
El operador de extensión, como su nombre indica, extiende o expande el contenido del elemento dado. | Rest Syntax es justo lo contrario de la sintaxis extendida: recopila los datos y los almacena en una variable que podemos usar más en nuestro código. |
Expande un Array en forma de elementos , mientras que en pares clave-valor en el caso de los Objetos. | Recopila los datos en el formato deseado por el desarrollador. |
Puede o no usar el modo estricto dentro de la función que contiene el operador de propagación. | No puede usar el modo estricto dentro de la función que contiene el operador de descanso. |
Sobrescribirá las propiedades idénticas dentro de dos objetos y reemplazará el primero con el último. | Simplemente recopila todas las propiedades y las envuelve dentro de un contenedor. |
Publicación traducida automáticamente
Artículo escrito por abhisheksainiaggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA