--- id: 587d7b89367417b2b2512b48 title: Use the Spread Operator to Evaluate Arrays In-Place challengeType: 1 videoUrl: '' localeTitle: Utilice el operador de propagación para evaluar matrices en el lugar --- ## Description
ES6 introduce el operador de propagación , que nos permite expandir arreglos y otras expresiones en lugares donde se esperan múltiples parámetros o elementos. El siguiente código de ES5 utiliza apply() para calcular el valor máximo en una matriz:
var arr = [6, 89, 3, 45];
var maximus = Math.max.apply (null, arr); // devuelve 89
Tuvimos que usar Math.max.apply(null, arr) porque Math.max(arr) devuelve NaN . Math.max() espera argumentos separados por comas, pero no una matriz. El operador de difusión hace que esta sintaxis sea mucho mejor para leer y mantener.
const arr = [6, 89, 3, 45];
const maximus = Math.max (... arr); // devuelve 89
...arr devuelve una matriz desempaquetada. En otras palabras, se propaga la matriz. Sin embargo, el operador de difusión solo funciona en el lugar, como en un argumento a una función o en un literal de matriz. El siguiente código no funcionará:
const extendió = ... arr; // lanzará un error de sintaxis
## Instructions
Copie todos los contenidos de arr1 en otra matriz arr2 utilizando el operador de propagación.
## Tests
```yml tests: - text: arr2 es la copia correcta de arr1 . testString: 'assert(arr2.every((v, i) => v === arr1[i]), "arr2 is correct copy of arr1.");' - text: ... se usó el operador spread para duplicar arr1 . testString: 'getUserInput => assert(getUserInput("index").match(/\[\s*...arr1\s*\]/g),"... spread operator was used to duplicate arr1.");' - text: arr2 permanece sin cambios cuando se cambia arr1 . testString: 'assert((arr1, arr2) => {arr1.push("JUN"); return arr2.length < arr1.length},"arr2 remains unchanged when arr1 is changed.");' ```
## Challenge Seed
```js const arr1 = ['JAN', 'FEB', 'MAR', 'APR', 'MAY']; let arr2; (function() { "use strict"; arr2 = []; // change this line })(); console.log(arr2); ```
## Solution
```js // solution required ```