Files
freeCodeCamp/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/use-the-spread-operator-to-evaluate-arrays-in-place.md
camperbot b3af21d50f chore(i18n,curriculum): update translations (#42487)
* chore(i18n,curriculum): update translations

* chore: Italian to italian

Co-authored-by: Nicholas Carrigan <nhcarrigan@gmail.com>
2021-06-14 11:34:20 -07:00

2.1 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b89367417b2b2512b48 Usare l'operatore di espansione per analizzare gli array in-place 1 301222 use-the-spread-operator-to-evaluate-arrays-in-place

--description--

ES6 introduce l'operatore di espansione, che ci permette di espandere array ed altre espressioni in-place dove sono attesi più parametri o elementi.

Il codice ES5 qui sotto utilizza apply() per calcolare il valore massimo in un array:

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

maximus avrà un valore di 89.

Abbiamo dovuto utilizzare Math.max.apply(null, arr) perché Math.max(arr) restituisce NaN. Math.max() si aspetta argomenti separati da virgole, ma non un array. L'operatore di espansione rende questa sintassi molto migliore da leggere e mantenere.

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

maximus avrà un valore di 89.

...arr restituisce un array spacchettato. In altre parole, espande l'array. Tuttavia, l'operatore di espansione funziona solo sul posto, come argomento di una funzione o in un array letterale (definito usando le parentesi quadre). Il seguente codice non funzionerà:

const spreaded = ...arr;

--instructions--

Copia tutti i contenuti di arr1 in un altro array arr2 usando l'operatore di espansione.

--hints--

arr2 dovrebbe essere la copia esatta di arr1.

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

L'operatore di espansione ... dovrebbe essere usato per duplicare arr1.

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

arr2 dovrebbe rimanere invariato quando arr1 viene modificato.

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];