Files
freeCodeCamp/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/es6/use-the-spread-operator-to-evaluate-arrays-in-place.md
2021-03-18 10:16:46 -07:00

2.0 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b89367417b2b2512b48 Utiliza el operador de propagación para evaluar los arreglos en el lugar 1 301222 use-the-spread-operator-to-evaluate-arrays-in-place

--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 ES5 usa apply() para calcular el valor máximo en un arreglo:

var arr = [6, 89, 3, 45];
var maximus = Math.max.apply(null, arr);

maximus tendrá un valor de 89.

Tuvimos que usar Math.max.apply(null, arr) porque Math.max(arr) devuelve NaN. Math.max() espera argumentos separados por comas, pero no un arreglo. El operador de propagación hace que esta sintaxis sea más fácil de leer y mantener.

const arr = [6, 89, 3, 45];
const maximus = Math.max(...arr);

maximus tendría un valor de 89.

...arr devuelve un arreglo desempacado. En otras palabras, propaga el arreglo. Sin embargo, el operador de propagación sólo funciona en el lugar, como en un argumento de función o en un arreglo literal. El siguiente código no funcionará:

const spreaded = ...arr;

--instructions--

Copia todo el contenido de arr1 en otro arreglo arr2 usando el operador de propagación.

--hints--

arr2 debe ser una copia correcta de arr1.

assert(arr2.every((v, i) => v === arr1[i]) && arr2.length);

El operador de propagación ... debe utilizarse para duplicar arr1.

assert(code.match(/Array\(\s*\.\.\.arr1\s*\)|\[\s*\.\.\.arr1\s*\]/));

arr2 debe permanecer sin cambios cuando arr1 cambie.

assert((arr1, arr2) => {
  arr1.push('JUN');
  return arr2.length < arr1.length;
});

--seed--

--seed-contents--

const arr1 = ['JAN', 'FEB', 'MAR', 'APR', 'MAY'];
let arr2;

arr2 = [];  // Change this line

console.log(arr2);

--solutions--

const arr1 = ['JAN', 'FEB', 'MAR', 'APR', 'MAY'];
let arr2;

arr2 = [...arr1];