"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Operadores de extensión y descanso en JavaScript

Operadores de extensión y descanso en JavaScript

Publicado el 2024-11-01
Navegar:338

Spread and Rest Operators in JavaScript

Historia de bocadillos:
Digamos que tienes una canasta de bocadillos:

const snacks = ['apple', 'banana', 'chocolate'];

Ahora quieres compartir estos bocadillos con tus amigos. Pero en vez de darles toda la canasta, les sacas cada snack y se los das uno por uno:

console.log(...snacks);  // Output: apple banana chocolate

El operador... (spread) es como sacar los snacks de la cesta y esparcirlos sobre la mesa. ¡Tus amigos ahora pueden recogerlos individualmente!

Por otro lado, si tus amigos traen aún más bocadillos, puedes juntarlos todos en una canasta grande usando el operador... (rest):

function collectSnacks(...moreSnacks) {
  console.log(moreSnacks);
}

collectSnacks('cookie', 'chips', 'juice');  // Output: ['cookie', 'chips', 'juice']

Aquí, el... operador recoge todos los snacks en una nueva cesta. ¡Así funciona el operador resto!

Si eres nuevo en JavaScript, es posible que te hayas encontrado con dos elementos de sintaxis especiales: los operadores de extensión y descanso. Ambos lucen iguales —tres puntos (...)— pero se usan de diferentes maneras. ¡Vamos a analizarlos con ejemplos simples!

1. ¿Qué es el operador de diferencial?
El operador de extensión (...) se utiliza para expandir una matriz o un objeto en elementos individuales. Es como descomprimir una matriz u objeto en sus componentes.

Ejemplo: expandir una matriz
Digamos que tienes una serie de números y quieres pasarlos individualmente a una función.

const numbers = [1, 2, 3];
console.log(...numbers);  // Output: 1 2 3

¡Puedes utilizar el operador de extensión para distribuir los elementos de la matriz!

Ejemplo: combinación de matrices
Si tiene dos matrices y desea fusionarlas, el operador de extensión lo hace fácil:

const array1 = [1, 2, 3];
const array2 = [4, 5, 6];

const mergedArray = [...array1, ...array2];
console.log(mergedArray);  // Output: [1, 2, 3, 4, 5, 6]

Es como disponer todos los elementos de la matriz1 y la matriz2 en una nueva matriz.

Ejemplo: Copiar un objeto
También puedes usar el operador de extensión con objetos:

const user = { name: "Ahmed", age: 25 };
const updatedUser = { ...user, location: "Bengaluru" };

console.log(updatedUser);
// Output: { name: "Ahmed", age: 25, location: "Bengaluru" }

Aquí, copiamos las propiedades del objeto de usuario y agregamos una nueva ubicación de propiedad.

  1. ¿Qué es el Operador Rest? El operador de resto es lo opuesto al operador de dispersión. En lugar de expandir una matriz u objeto, recopila varios elementos en una matriz u objeto.

Ejemplo: Función con parámetros de descanso
Imagina que estás escribiendo una función que toma cualquier número de argumentos:

function addNumbers(...nums) {
  return nums.reduce((sum, current) => sum   current, 0);
}

console.log(addNumbers(1, 2, 3, 4));  // Output: 10

En este caso, el operador rest ...nums recopila todos los argumentos en una matriz, lo que facilita el trabajo con múltiples valores.

Ejemplo: desestructurar con descanso
También puede utilizar el operador rest al desestructurar matrices:

const [first, ...rest] = [1, 2, 3, 4];
console.log(first);  // Output: 1
console.log(rest);   // Output: [2, 3, 4]

Aquí, primero se obtiene el primer elemento de la matriz y el resto recopila los elementos restantes en una nueva matriz.

Conclusión
Los operadores de extensión y descanso son herramientas poderosas y versátiles en JavaScript. En resumen:

  • Difundir (...) expande una matriz u objeto en elementos individuales.
  • Rest (...) recopila múltiples elementos en una matriz u objeto.

Espero que hayas entendido estos 2 conceptos, difundidos y descansados, ¡hará que tu código JavaScript sea más conciso y más fácil de leer!

Feliz codificación :)

Declaración de liberación Este artículo se reproduce en: https://dev.to/amdzakir/spread-and-rest-operators-in-javascript-57j9?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3