JavaScript Distribución de la matriz / reposo


Ejemplo

Operador de propagación

6

Con ES6, puede usar diferenciales para separar elementos individuales en una sintaxis separada por comas:

let arr = [1, 2, 3, ...[4, 5, 6]];  // [1, 2, 3, 4, 5, 6]

// in ES < 6, the operations above are equivalent to
arr = [1, 2, 3];
arr.push(4, 5, 6);

El operador de propagación también actúa sobre las cadenas, separando cada carácter individual en un nuevo elemento de cadena. Por lo tanto, al utilizar una función de matriz para convertirlos en enteros, la matriz creada anteriormente es equivalente a la siguiente:

let arr = [1, 2, 3, ...[..."456"].map(x=>parseInt(x))]; // [1, 2, 3, 4, 5, 6]

O, usando una sola cadena, esto podría simplificarse para:

let arr = [..."123456"].map(x=>parseInt(x)); // [1, 2, 3, 4, 5, 6]

Si el mapeo no se realiza entonces:

let arr = [..."123456"]; // ["1", "2", "3", "4", "5", "6"]

El operador de propagación también se puede utilizar para propagar argumentos en una función :

function myFunction(a, b, c) { }
let args = [0, 1, 2];

myFunction(...args);

// in ES < 6, this would be equivalent to:
myFunction.apply(null, args);

Operador de descanso

El resto del operador hace lo opuesto al operador de propagación al unir varios elementos en uno solo.

[a, b, ...rest] = [1, 2, 3, 4, 5, 6]; // rest is assigned [3, 4, 5, 6]

Recopilar argumentos de una función:

function myFunction(a, b, ...rest) { console.log(rest); }

myFunction(0, 1, 2, 3, 4, 5, 6); // rest is [2, 3, 4, 5, 6]