diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-and-operator.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-and-operator.md
index 65cf86386d9..5cfdd788d3c 100644
--- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-and-operator.md
+++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-and-operator.md
@@ -11,7 +11,7 @@ dashedName: comparisons-with-the-logical-and-operator
A volte dovrai testare più di una cosa alla volta. L'operatore logico and (`&&`) restituisce `true` se e solo se gli operandi a sinistra e a destra di esso sono veri.
-The same effect could be achieved by nesting an `if` statement inside another `if`.
+Lo stesso effetto può essere ottenuto annidando un'istruzione `if` all'interno di un altro `if`.
```js
if (num > 5) {
@@ -22,7 +22,7 @@ if (num > 5) {
return "No";
```
-This code will return `Yes` if `num` is greater than `5` and less than `10`. The same logic can be written with the logical and operator.
+Questo codice restituirà `Yes` se `num` è maggiore di `5` e minore a `10`. La stessa logica può essere scritta con l'operatore logico and.
```js
if (num > 5 && num < 10) {
diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-or-operator.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-or-operator.md
index cfc6e486442..9843afb1a1c 100644
--- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-or-operator.md
+++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/comparisons-with-the-logical-or-operator.md
@@ -13,7 +13,7 @@ L'operatore Or logico (`||`) restituisce `true` se uno degli ope
L'operatore or logico è composto da due simboli "pipe": (`||`). Questo in genere può essere trovato tra i tuoi tasti Backspace e Enter.
-The pattern below should look familiar from prior waypoints.
+Lo schema sottostante dovrebbe esserti familiare dai punti visti in precedenza.
```js
if (num > 10) {
@@ -25,7 +25,7 @@ if (num < 5) {
return "Yes";
```
-This code will return `Yes` if `num` is between `5` and `10` (`5` and `10` included). The same logic can be written with the logical or operator.
+Questo codice restituirà `Yes` se `num` è compreso tra `5` e `10` (`5` e `10` inclusi). La stessa logica può essere scritta con l'operatore logico or.
```js
if (num > 10 || num < 5) {
diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md
index d83a182a819..b09da537d4d 100644
--- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md
+++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md
@@ -9,37 +9,37 @@ dashedName: step-8
Gli attributi HTML sono parole speciali utilizzate all'interno del tag di apertura di un elemento per controllarne il comportamento. L'attributo `src` in un elemento `img` specifica l'URL dell'immagine (dove l'immagine è localizzata).
-Here is an example of an `img` element with a `src` attribute pointing to the freeCodeCamp logo:
+Ecco un esempio di un elemento `img` con un attributo `src` che punta al logo di freeCodeCamp:
```html
```
-Inside the existing `img` element, add an `src` attribute with this URL:
+All'interno dell'elemento `img` esistente, aggiungi un attributo `src` con questo URL:
`https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`
# --hints--
-Your code should have an `img` element. You may have removed the `img` element or you have not surrounded the `src` attribute's value with quotes.
+Il codice dovrebbe avere un elemento `img`. Potresti aver rimosso l'elemento `img` o non hai circondato il valore dell'attributo `src` con le virgolette.
```js
assert(document.querySelector('img'));
```
-Your `img` element should have an `src` attribute. You have either omitted the attribute or have a typo. Make sure there is a space between the element name and the attribute name.
+L'elemento `img` dovrebbe avere un attributo `src`. Hai omesso l'attributo o hai un refuso. Assicurati che ci sia uno spazio tra il nome dell'elemento e il nome dell'attributo.
```js
assert(document.querySelector('img').src);
```
-Your `img` element's `src` attribute should be set to '`https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`'. You have either omitted the URL or have a typo. The case of the URL is important.
+L'attributo `src` dell'elemento `img` dovrebbe essere '`https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`'. Hai omesso l'URL o hai un refuso. Le maiuscole/minuscole nell'URL sono importanti.
```js
assert(document.querySelector('img').src === 'https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg');
```
-Although you have set the `img` element's `src` to the correct URL, it is recommended to always surround the value of an attribute with quotation marks.
+Anche se hai impostato l'URL corretto per l'`src` dell'elemento `img`, è raccomandato circondare sempre il valore di un attributo con le virgolette.
```js
assert(!/\ {
@@ -15,31 +15,31 @@ array.map(el => {
})
```
-The callback function needs to return a value. In this case, you want to return the value of each element converted to a number. You can do this by using the `Number()` constructor, passing the element as an argument.
+La funzione callback deve restituire un valore. In questo caso, vuoi restituire il valore di ogni elemento convertito in un numero. Puoi farlo usando il costruttore `Number()`, passando l'elemento come argomento.
-Add a callback function to your `.map()` method that converts each element to a number.
+Aggiungi al metodo `.map()` una funzione callback che converte ogni elemento in un numero.
# --hints--
-Your `.map()` method should have a callback function which takes an `el` argument.
+Il metodo `.map()` dovrebbe avere una funzione callback che prende un argomento `el`.
```js
assert.match(calculate.toString(), /array\.map\(\(?\s*el\s*\)?\s*=>|array\.map\(function\s*\(?el\)\s*\{/)
```
-Your callback function should use the `Number` constructor to convert `el` to a number.
+La funzione callback dovrebbe utilizzare il costruttore `Number` per convertire `el` in un numero.
```js
assert.match(calculate.toString(), /Number\(\s*el\s*\)/);
```
-Your callback function should not use the `new` keyword with the `Number` constructor.
+La funzione callback non dovrebbe usare la parola chiave `new` con il costruttore `Number`.
```js
assert.notMatch(calculate.toString(), /new/);
```
-Your callback function should return the element converted to a number.
+La funzione callback dovrebbe restituire l'elemento convertito in un numero.
```js
assert.match(calculate.toString(), /(array\.map\(\(?\s*el\s*\)?\s*=>|array\.map\(function\s*\(?el\)\s*\{)\s*(return\s*)?Number\(\s*el\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507d810f1a2e38f1908fd8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507d810f1a2e38f1908fd8.md
index 6fb1811b2c9..8d94896abfa 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507d810f1a2e38f1908fd8.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507d810f1a2e38f1908fd8.md
@@ -7,27 +7,27 @@ dashedName: step-6
# --description--
-A user could put any text they want into the input box. You want to make sure that you are only working with numbers. The `Number()` constructor will return `NaN` (which stands for "not a number") if the value passed to it cannot be converted to a number.
+Un utente potrebbe inserire il testo che desidera nella casella di input. Vuoi assicurarti di lavorare solo con dei numeri. Il costruttore `Number()` restituirà `NaN` (che sta per "not a number") se il valore passatogli non può essere convertito in un numero.
-You need to filter these values out – thankfully, arrays have a method specifically for this. The `.filter()` method will allow you to filter elements out of an array, creating a new array in the process.
+Devi escludere questi valori – fortunatamente, gli array hanno un metodo specifico per questo. Il metodo `.filter()` ti permetterà di escludere degli elementi da un array, creando un nuovo array nel processo.
-Declare a `filtered` variable and assign `numbers.filter()` to it.
+Dichiara una variabile `filtered` e assegnale `numbers.filter()`.
# --hints--
-Your `calculate` function should have a `filtered` variable.
+La funzione `calculate` dovrebbe avere una variabile `filtered`.
```js
assert.match(calculate.toString(), /filtered/);
```
-Your `calculate` function should use the `.filter()` method on the `numbers` array.
+La funzione `calculate` dovrebbe chiamare il metodo `.filter()` sull'array `numbers`.
```js
assert.match(calculate.toString(), /numbers\.filter\(\)/)
```
-You should assign the result of `numbers.filter()` to the `filtered` variable.
+Dovresti assegnare il risultato di `numbers.filter()` alla variabile `filtered`.
```js
assert.match(calculate.toString(), /filtered\s*=\s*numbers.filter\(\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507e4562cdde3a28e8de1b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507e4562cdde3a28e8de1b.md
index e47d7580a32..bc3ea889711 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507e4562cdde3a28e8de1b.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507e4562cdde3a28e8de1b.md
@@ -7,7 +7,7 @@ dashedName: step-7
# --description--
-Much like the `.map()` method, the `.filter()` method takes a callback function. The callback function takes the current element as its first argument.
+Proprio come il metodo `.map()`, il metodo `.filter()` accetta una funzione callback. La funzione callback prende l'elemento corrente come primo argomento.
```js
array.filter(el => {
@@ -15,27 +15,27 @@ array.filter(el => {
})
```
-The callback function needs to return a Boolean value, which indicates whether the element should be included in the new array. In this case, you want to return `true` if the element is not `NaN` (not a number).
+La funzione callback deve restituire un valore booleano, che indica se l'elemento deve essere incluso nel nuovo array. In questo caso, vuoi restituire `true` se l'elemento non è `NaN` (non un numero).
-However, you cannot check for equality here, because `NaN` is not equal to itself. Instead, you can use the `Number.isNaN()` method, which returns `true` if the argument is `NaN`.
+Tuttavia, non puoi controllare l'uguaglianza qui, perché `NaN` non è uguale a se stesso. Invece, puoi utilizzare il metodo `Number.isNaN()`, che restituisce `true` se l'argomento è `NaN`.
-Add a callback function to your `.filter()` method that returns `true` if the element is not `NaN`.
+Aggiungi al metodo `.filter()` una funzione callback che restituisce `true` se l'elemento non è `NaN`.
# --hints--
-Your `.filter()` method should have a callback which accepts `el` as an argument.
+Il metodo `.filter()` dovrebbe avere una funzione callback che prende `el` come argomento.
```js
assert.match(calculate.toString(), /numbers\.filter\(\(?\s*el\s*\)?\s*=>|numbers\.filter\(function\s*\(?el\)\s*\{/)
```
-Your callback function should use `!` and `Number.isNaN()` to check if `el` is NOT `NaN`.
+La funzione callback dovrebbe usare `!` e `Number.isNaN()` per verificare se `el` NON è `NaN`.
```js
assert.match(calculate.toString(), /!(Number\.)?isNaN\(\s*el\s*\)/);
```
-Your callback function should return elements that are not `NaN`.
+La funzione callback dovrebbe restituire gli elementi che non sono `NaN`.
```js
assert.match(calculate.toString(), /(numbers\.filter\(\(?\s*el\s*\)?\s*=>|numbers\.filter\(function\s*\(?el\)\s*\{)\s*(return\s*)?!(Number\.)?isNaN\(\s*el\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507ebb0c50ce3b9d669cd9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507ebb0c50ce3b9d669cd9.md
index 8d66c847223..f7c216c9fa1 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507ebb0c50ce3b9d669cd9.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507ebb0c50ce3b9d669cd9.md
@@ -7,38 +7,38 @@ dashedName: step-8
# --description--
-Array methods can often be chained together to perform multiple operations at once. As an example:
+Spesso i metodi per array possono essere concatenati l'uno all'altro per eseguire operazioni multiple contemporaneamente. Ad esempio:
```js
array.map().filter();
```
-The `.map()` method is called on the array, and then the `.filter()` method is called on the result of the `.map()` method. This is called method chaining.
+Il metodo `.map()` viene chiamato sull'array, poi il metodo `.filter()` viene chiamato sul risultato del metodo `.map()`. Questo viene detto concatenamento dei metodi.
-Following that example, remove your `filtered` variable, and chain your `.filter()` call to your `.map()` call above. Do not remove either of the callback functions.
+Seguendo questo esempio, rimuovi la variabile `filtered` e concatena la chiamata `.filter()` alla chiamata `.map()` precedente. Non rimuovere nessuna delle funzioni callback.
# --hints--
-You should remove the `filtered` variable.
+Dovresti rimuovere la variabile `filtered`.
```js
assert.notMatch(calculate.toString(), /filtered/);
```
-You should chain your `.filter()` call to your `.map()` call.
+Dovresti concatenare la chiamata `.filter()` alla chiamata `.map()`.
```js
console.log(calculate.toString());
assert.match(calculate.toString(), /array\.map\(.*\)\.filter\(/s);
```
-You should not remove the `.map()` callback.
+Non dovresti rimuovere la funzione callback di `.map()`.
```js
assert.match(calculate.toString(), /(array\.map\(\(?\s*el\s*\)?\s*=>|array\.map\(function\s*\(?el\)\s*\{)\s*(return\s*)?Number\(\s*el\s*\)/);
```
-You should not remove the `.filter()` callback.
+Non dovresti rimuovere la funzione callback di `.filter()`.
```js
assert.match(calculate.toString(), /(\.filter\(\(?\s*el\s*\)?\s*=>|\.filter\(function\s*\(?el\)\s*\{)\s*(return\s*)?!(Number\.)?isNaN\(\s*el\s*\)/s);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507fc6cc29083cc44df2fb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507fc6cc29083cc44df2fb.md
index 11561c2cc95..0a2fb14b03b 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507fc6cc29083cc44df2fb.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507fc6cc29083cc44df2fb.md
@@ -9,23 +9,23 @@ dashedName: step-9
That is as far as you can get with the calculate function for now. It is time to write your mean logic.
-Create an empty function called `getMean`. It should take a single parameter `array`.
+Crea una funzione vuota chiamata `getMean`. Dovrebbe prendere un singolo parametro `array`.
# --hints--
-You should declare a `getMean` function.
+Dovresti dichiarare una funzione `getMean`.
```js
assert.isFunction(getMean);
```
-Your `getMean` function should take a single `array` argument.
+La funzione `getMean` dovrebbe prendere un singolo argomento `array`.
```js
assert.match(getMean.toString(), /\(\s*array\s*\)/);
```
-Your `getMean` function should be empty.
+La funzione `getMean` dovrebbe essere vuota.
```js
assert.match(getMean.toString(), /\{\s*\}/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350805fe0fe283dd347b0dc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350805fe0fe283dd347b0dc.md
index b28037ffcb8..2c638b6bd1c 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350805fe0fe283dd347b0dc.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350805fe0fe283dd347b0dc.md
@@ -7,25 +7,25 @@ dashedName: step-10
# --description--
-The mean is the average value of all numbers in a list. The first step in calculating the mean is to take the sum of all numbers in the list. Arrays have another method, called `.reduce()`, which is perfect for this situation. The `.reduce()` method takes an array and applies a callback function to condense the array into a single value.
+La media è il valore medio di tutti i numeri in una lista. Il primo passo nel calcolo della media è quello di prendere la somma di tutti i numeri nella lista. Gli array hanno un altro metodo, chiamato `.reduce()`, che è perfetto per questa situazione. Il metodo `.reduce()` prende un array e applica una funzione callback per condensare l'array in un singolo valore.
-Declare a `sum` variable and assign `array.reduce()` to it.
+Dichiara una variabile `sum` e assegnale `array.reduce()`.
# --hints--
-Your `getMean` function should have a `sum` variable.
+La funzione `getMean` dovrebbe avere una variabile `sum`.
```js
assert.match(getMean.toString(), /sum/);
```
-Your `getMean` function should use the `.reduce()` method of the `array` argument.
+La funzione `getMean` dovrebbe usare il metodo `.reduce()` sull'argomento `array`.
```js
assert.match(getMean.toString(), /array\.reduce\(\)/);
```
-You should assign the result of `array.reduce()` to the `sum` variable.
+Dovresti assegnare il risultato di `array.reduce()` alla variabile `sum`.
```js
assert.match(getMean.toString(), /sum\s*=\s*array\.reduce\(\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635080d80b72803e973841da.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635080d80b72803e973841da.md
index 196a32559cd..62b45bb1ae3 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635080d80b72803e973841da.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635080d80b72803e973841da.md
@@ -7,7 +7,7 @@ dashedName: step-11
# --description--
-Like the other methods, `.reduce()` takes a callback. This callback, however, takes at least two parameters. The first is the accumulator, and the second is the current element in the array. The return value for the callback becomes the value of the accumulator on the next iteration.
+Come gli altri metodi, `.reduce()` richiede una funzione callback. Questa callback, tuttavia, richiede almeno due parametri. Il primo è l'accumulatore e il secondo è l'elemento corrente dell'array. Il valore di ritorno per la callback diventa il valore dell'accumulatore nell'iterazione successiva.
```js
array.reduce((acc, el) => {
@@ -15,17 +15,17 @@ array.reduce((acc, el) => {
});
```
-For your `sum` variable, pass a callback to `.reduce()` that takes the accumulator and the current element as parameters. The callback should return the sum of the accumulator and the current element.
+Per la variabile `sum`, passa a `.reduce()` una callback che prende come parametri l'accumulatore e l'elemento corrente. La callback dovrebbe restituire la somma dell'accumulatore e dell'elemento corrente.
# --hints--
-Your `reduce` method should have a callback function which takes an `acc` and an `el` argument.
+Il metodo `reduce` dovrebbe avere una funzione callback che prende degli argomenti `acc` e `el`.
```js
assert.match(getMean.toString(), /(array\.reduce\(\(acc\s*,\s*el\s*\)\s*=>|array\.reduce\(function\s*\(acc\s*,\s*el\)\s*\{)/)
```
-Your `reduce` method should return the sum of `acc` and `el`.
+Il metodo `reduce` dovrebbe restituire la somma di `acc` e `el`.
```js
assert.match(getMean.toString(), /(array\.reduce\(\(acc\s*,\s*el\s*\)\s*=>|array\.reduce\(function\s*\(acc\s*,\s*el\)\s*\{)\s*(return)?\s*acc\s*\+\s*el/)
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350854411ffb73feb6bb84e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350854411ffb73feb6bb84e.md
index b0dd8f59b53..e4ffff6086d 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350854411ffb73feb6bb84e.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350854411ffb73feb6bb84e.md
@@ -7,19 +7,19 @@ dashedName: step-12
# --description--
-The `.reduce()` method takes a second parameter that is used as the initial value of the accumulator. Without a second parameter, the `.reduce()` method uses the first element of the array as the accumulator, which can lead to unexpected results.
+Il metodo `.reduce()` prende un secondo parametro utilizzato come valore iniziale dell'accumulatore. Senza un secondo parametro, il metodo `.reduce()` utilizza il primo elemento dell'array come accumulatore, il che può portare a risultati inattesi.
-To be safe, it's best to set an initial value. Here is an example of setting the initial value to an empty string:
+Per essere sicuri, è meglio impostare un valore iniziale. Ecco un esempio di impostazione del valore iniziale con una stringa vuota:
```js
array.reduce((acc, el) => acc + el.toLowerCase(), "");
```
-Set the initial value of the accumulator to `0`.
+Imposta il valore iniziale dell'accumulatore a `0`.
# --hints--
-Your `reduce` method should have `0` as the initial value.
+Il metodo `reduce` dovrebbe avere `0` come valore iniziale.
```js
assert.match(getMean.toString(), /(array\.reduce\(\(acc\s*,\s*el\s*\)\s*=>|array\.reduce\(function\s*\(acc\s*,\s*el\)\s*\{)\s*(return)?\s*acc\s*\+\s*el;\s*\}?\s*,\s*0\)/)
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508577f69f41409275f877.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508577f69f41409275f877.md
index 4839e059df3..73d3b3f26f8 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508577f69f41409275f877.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508577f69f41409275f877.md
@@ -7,19 +7,19 @@ dashedName: step-13
# --description--
-The next step in calculating the mean is to divide the sum of numbers by the count of numbers in the list.
+Il passo successivo per calcolare la media è dividere la somma dei numeri per il conteggio dei numeri nella lista.
-Declare a `mean` variable and assign it the value of `sum` divided by the length of `array`.
+Dichiara una variabile `mean` e assegnale il valore di `sum` diviso per la lunghezza di `array`.
# --hints--
-Your `getMean` function should have a `mean` variable.
+La funzione `getMean` dovrebbe avere una variabile `mean`.
```js
assert.match(getMean.toString(), /mean\s*=/);
```
-You should assign the value of `sum` divided by `array.length` to the `mean` variable.
+Dovresti assegnare il valore di `sum` diviso per `array.length` alla variabile `mean`.
```js
assert.match(getMean.toString(), /mean\s*=\s*sum\s*\/\s*array\.length/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085da54fc2041e0303e75.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085da54fc2041e0303e75.md
index 0ff64ecf7b7..b02b16d0e31 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085da54fc2041e0303e75.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085da54fc2041e0303e75.md
@@ -7,17 +7,17 @@ dashedName: step-14
# --description--
-Finally, you need to return the value of `mean`.
+Infine, devi restituire il valore di `mean`.
# --hints--
-Your `getMean` function should use the `return` keyword.
+La funzione `getMean` dovrebbe usare la parola chiave `return`.
```js
assert.match(getMean.toString(), /return/);
```
-Your `getMean` function should return the value of `mean`.
+La funzione `getMean` dovrebbe restituire il valore di `mean`.
```js
assert.match(getMean.toString(), /return\s*mean\s*/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085f80bd9b5429faa40c4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085f80bd9b5429faa40c4.md
index d15924ec709..ba12b4fbb5f 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085f80bd9b5429faa40c4.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085f80bd9b5429faa40c4.md
@@ -7,37 +7,37 @@ dashedName: step-15
# --description--
-You can actually clean this logic up a bit. Using the implicit return of an arrow function, you can directly return the value of the `.reduce()` method divided by the length of the array, without having to assign any variables.
+In realtà puoi ripulire un po' questa logica. Utilizzando il return implicito di una funzione freccia, puoi restituire direttamente il valore del metodo `.reduce()` diviso per la lunghezza dell'array, senza dover assegnare alcuna variabile.
-Update your `getMean` function as described above.
+Aggiorna la funzione `getMean` come descritto sopra.
# --hints--
-You should remove the `sum` variable declaration.
+Dovresti rimuovere la dichiarazione della variabile `sum`.
```js
assert.notMatch(getMean.toString(), /sum\s*=/);
```
-You should remove the `mean` variable declaration.
+Dovresti rimuovere la dichiarazione della variabile `mean`.
```js
assert.notMatch(getMean.toString(), /mean\s*=/);
```
-You should not change the logic within the `reduce` method.
+Non dovresti cambiare la logica all'interno del metodo `reduce`.
```js
assert.match(getMean.toString(), /(array\.reduce\(\(acc\s*,\s*el\s*\)\s*=>|array\.reduce\(function\s*\(acc\s*,\s*el\)\s*\{)\s*(return)?\s*acc\s*\+\s*el;\s*\}?\s*,\s*0\)/)
```
-You should divide the result of the `reduce` method by the length of the array.
+Dovresti dividere il risultato del metodo `reduce` per la lunghezza dell'array.
```js
assert.match(getMean.toString(), /(array\.reduce\(\(acc\s*,\s*el\s*\)\s*=>|array\.reduce\(function\s*\(acc\s*,\s*el\)\s*\{)\s*(return)?\s*acc\s*\+\s*el;\s*\}?\s*,\s*0\)\s*\/\s*array\.length/)
```
-You should use implicit return syntax to directly return the result of `reduce` divided by the array length.
+Dovresti usare la sintassi di return implicito per restituire direttamente il risultato di `reduce` diviso per la lunghezza dell'array.
```js
assert.match(code, /const\s+getMean\s*=\s*\(?array\)?\s*=>\s*array\.reduce\(\(acc\s*,\s*el\)\s*=>\s*acc\s*\+\s*el\s*,\s*0\s*\)\s*\/\s*array\.length/)
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350866cce4c6d43bdf607c8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350866cce4c6d43bdf607c8.md
index 443f0323e73..dbcc4937501 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350866cce4c6d43bdf607c8.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350866cce4c6d43bdf607c8.md
@@ -7,17 +7,17 @@ dashedName: step-16
# --description--
-Now you need to use your new `getMean` function. In your `calculate` function, declare a `mean` variable and assign it the value of `getMean(numbers)`.
+Ora devi usare la nuova funzione `getMean`. Nella funzione `calculate`, dichiara una variabile `mean` e assegnale il valore `getMean(numbers)`.
# --hints--
-Your `calculate` function should have a `mean` variable.
+La funzione `calculate` dovrebbe avere una variabile `mean`.
```js
assert.match(calculate.toString(), /mean\s*=/);
```
-Your `mean` variable should be assigned the value of `getMean(numbers)`.
+Alla variabile `mean` dovrebbe essere assegnato il valore di `getMean(numbers)`.
```js
assert.match(calculate.toString(), /mean\s*=\s*getMean\(\s*numbers\s*\);/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508750f040a348a440a0bf.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508750f040a348a440a0bf.md
index 3180484e3eb..dc6208e0ca6 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508750f040a348a440a0bf.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508750f040a348a440a0bf.md
@@ -7,25 +7,25 @@ dashedName: step-17
# --description--
-To display the value of `mean`, your app has a `#mean` element ready to go.
+Per visualizzare il valore di `mean`, la tua app ha un elemento `#mean` pronto all'uso.
-Use a `.querySelector` to find that element, and then set its `.textContent` to the value of `mean`.
+Usa un `.querySelector` per trovare l'elemento e poi imposta `.textContent` sul valore di `mean`.
# --hints--
-Your `calculate` function should use a `document.querySelector()`.
+La funzione `calculate` dovrebbe usare `document.querySelector()`.
```js
assert.match(calculate.toString(), /document\.querySelector\(/);
```
-Your `.querySelector()` should target the `#mean` element.
+`.querySelector()` dovrebbe selezionare l'elemento `#mean`.
```js
assert.match(calculate.toString(), /document\.querySelector\(\s*('|")#mean\1\s*\)/);
```
-Your `calculate` function should set the `#mean` element's `.textContent` to the value of `mean`.
+La funzione `calculate` dovrebbe impostare il `.textContent` dell'elemento `#mean` sul valore di `mean`.
```js
assert.match(calculate.toString(), /document\.querySelector\(\s*('|")#mean\1\s*\)\s*\.textContent\s*=\s*mean;/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635089e3bd3e144f2db4094f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635089e3bd3e144f2db4094f.md
index f526d6e8f70..3b9bf6f7fa3 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635089e3bd3e144f2db4094f.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635089e3bd3e144f2db4094f.md
@@ -7,25 +7,25 @@ dashedName: step-18
# --description--
-If you test your form with a list of numbers, you should see the mean display on the page. However, this only works because freeCodeCamp's iframe has special settings. Normally, when a form is submitted, the event triggers a page refresh.
+Se provi il modulo con un elenco di numeri, dovresti vedere la media sulla pagina. Tuttavia, questo funziona solo perché l'iframe di freeCodeCamp ha delle impostazioni speciali. Normalmente, quando un modulo viene inviato, l'evento attiva un aggiornamento della pagina.
-To resolve this, add `return false;` after your `calculate();` call in the `onsubmit` attribute.
+Per risolvere questo problema, aggiungi `return false;` dopo la chiamata `calculate();` nell'attributo `onsubmit`.
# --hints--
-Your `onsubmit` attribute should have a `return false;` statement.
+L'attributo `onsubmit` dovrebbe avere un'istruzione `return false;`.
```js
assert.match(document.querySelector("form").getAttribute("onsubmit"), /return\s+false;/);
```
-Your `onsubmit` attribute should still call `calculate()`.
+L'attributo `onsubmit` dovrebbe ancora chiamare `calculate()`.
```js
assert.match(document.querySelector("form").getAttribute("onsubmit"), /calculate\(\s*\)/);
```
-You should return `false` after you call `calculate()`.
+Dovresti restituire `false` dopo aver chiamato `calculate()`.
```js
assert.match(document.querySelector("form").getAttribute("onsubmit"), /calculate\(\s*\);\s*return\s+false;/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508abbff1c4c5210d68cc5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508abbff1c4c5210d68cc5.md
index 8b54840f3fc..546d3f0c2da 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508abbff1c4c5210d68cc5.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508abbff1c4c5210d68cc5.md
@@ -7,25 +7,25 @@ dashedName: step-19
# --description--
-Time to start working on the median calculation. The median is the midpoint of a set of numbers.
+È arrivato il momento di lavorare sul calcolo della mediana. La mediana è il punto centrale di una serie di numeri.
-Begin with an empty function called `getMedian`, which should take an `array` parameter.
+Inizia con una funzione vuota chiamata `getMedian`, che dovrebbe prendere un parametro `array`.
# --hints--
-You should define a `getMedian` function.
+Dovresti definire una funzione `getMedian`.
```js
assert.isFunction(getMedian);
```
-Your `getMedian` function should take an `array` parameter.
+La funzione `getMedian` dovrebbe prendere un parametro `array`.
```js
assert.match(getMedian.toString(), /\(\s*array\s*\)/);
```
-Your `getMedian` function should be empty.
+La funzione `getMedian` dovrebbe essere vuota.
```js
assert.match(getMedian.toString(), /\(\s*array\s*\)\s*\{\s*\}/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508bb4afb069534e81f33b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508bb4afb069534e81f33b.md
index 850a88d9cf2..7ee6efd2b00 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508bb4afb069534e81f33b.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508bb4afb069534e81f33b.md
@@ -7,19 +7,19 @@ dashedName: step-20
# --description--
-The first step in calculating the median is to ensure the list of numbers is sorted from least to greatest. Once again, there is an array method ideal for this – the `.sort()` method.
+Il primo passo nel calcolo della mediana è quello di garantire che l'elenco dei numeri sia ordinato dal più piccolo al più grande. Ancora una volta, c'è un metodo per array ideale per questo – il metodo `.sort()`.
-Declare a `sorted` variable and assign `array.sort()` to it.
+Dichiara una variabile `sorted` e assegnale `array.sort()`.
# --hints--
-Your `getMedian` function should have a `sorted` variable.
+La funzione `getMedian` dovrebbe avere una variabile `sorted`.
```js
assert.match(getMedian.toString(), /sorted\s*=/);
```
-Your `getMedian` function should assign `array.sort()` to the `sorted` variable.
+La funzione `getMedian` dovrebbe assegnare `array.sort()` alla variabile `sorted`.
```js
assert.match(getMedian.toString(), /sorted\s*=\s*array\.sort\(\s*\);/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508c898d753754757bd5e3.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508c898d753754757bd5e3.md
index edb42afc1bf..a60ca084f52 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508c898d753754757bd5e3.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508c898d753754757bd5e3.md
@@ -7,21 +7,21 @@ dashedName: step-21
# --description--
-By default, the `.sort()` method converts the elements of an array into strings, then sorts them alphabetically. This works well for strings, but not so well for numbers. For example, `10` comes before `2` when sorted as strings, but `2` comes before `10` when sorted as numbers.
+Per impostazione predefinita, il metodo `.sort()` converte gli elementi di un array in stringhe, quindi le ordina alfabeticamente. Questo funziona bene per le stringhe, ma non così bene per i numeri. Ad esempio, `10` viene prima di `2` quando ordinato come stringa, ma `2` viene prima `10` quando ordinato come numero.
-To fix this, you can pass in a callback function to the `.sort()` method. This function takes two parameters, which represent the two elements being compared. The function should return a value less than `0` if the first element should come before the second element, a value greater than `0` if the first element should come after the second element, and `0` if the two elements should remain in their current positions.
+Per risolvere questo problema, è possibile passare una funzione callback al metodo `.sort()`. Questa funzione richiede due parametri, che rappresentano i due elementi da confrontare. La funzione dovrebbe restituire un valore inferiore a `0` se il primo elemento dovrebbe venire prima del secondo elemento, un valore maggiore di `0` se il primo elemento dovrebbe venire dopo il secondo elemento, e `0` se i due elementi dovrebbero rimanere nelle loro posizioni attuali.
-To sort your numbers from smallest to largest, pass a callback function that takes parameters `a` and `b`, and returns the result of subtracting `b` from `a`.
+Per ordinare i numeri dal più piccolo al più grande, passa una funzione callback che prende i parametri `a` e `b` e restituisce il risultato della sottrazione di `b` da `a`.
# --hints--
-Your `sort` method should have a callback function which takes an `a` and a `b` argument.
+Il metodo `sort` dovrebbe avere una funzione callback che prende degli argomenti `a` e `b`.
```js
assert.match(getMedian.toString(), /(array\.sort\(\(\s*a\s*,\s*b\s*\)\s*=>|array\.sort\(function\s*\(\s*a\s*,\s*b\)\s*\{)/)
```
-Your `sort` method should return the result of subtracting `b` from `a`.
+Il metodo `sort` dovrebbe restituire il risultato della sottrazione di `b` da `a`.
```js
assert.match(getMedian.toString(), /(array\.sort\(\(\s*a\s*,\s*b\s*\)\s*=>|array\.sort\(function\s*\(\s*a\s*,\s*b\)\s*\{)\s*(return)?\s*a\s*\-\s*b/)
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md
index f6e0343b71c..c64508552bc 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md
@@ -7,37 +7,37 @@ dashedName: step-22
# --description--
-The next step is to find the number in the middle of the list. If the list has an odd number of numbers, the middle number is the median. If the list has an even number of numbers, the median is the average of the two middle numbers.
+Il prossimo passo è trovare il numero al centro della lista. Se la lista ha un numero dispari di numeri, il numero centrale è la mediana. Se la lista ha un numero pari di numeri, la mediana è la media dei due numeri centrali.
-You can check if a number is even or odd with the modulus operator, which is represented by the `%` symbol. This operator returns the remainder of the division of two numbers. If the remainder is `0`, the number is even. If the remainder is `1`, the number is odd:
+Puoi controllare se un numero è pari o dispari con l'operatore resto, che è rappresentato dal simbolo `%`. Questo operatore restituisce il resto della divisione di due numeri. Se il resto è `0`, il numero è pari. Se il resto è `1`, il numero è dispari:
```js
array.length % 2 === 0;
```
-Declare a `median` variable. Using the ternary operator, check if the length of `array` is even. If the length of `array` is even, find the two middle numbers and calculate the mean of those numbers. If the length of `array` is odd, find the middle number and assign it to the `median` variable.
+Dichiara una variabile `median`. Usando l'operatore ternario, controlla se la lunghezza di `array` è pari. Se la lunghezza di `array` è pari, trova i due numeri centrali e calcola la loro media. Se la lunghezza di `array` è dispari, trova il numero centrale e assegnalo alla variabile `median`.
# --hints--
-Your `getMedian` function should have a `median` variable.
+La funzione `getMedian` dovrebbe avere una variabile `median`.
```js
assert.match(getMedian.toString(), /median\s*=/);
```
-Your `median` variable should use a ternary operator to check if the `array.length` is even.
+La variabile `median` dovrebbe usare un operatore ternario per verificare se `array.length` è pari.
```js
assert.match(getMedian.toString(), /median\s*=\s*array\.length\s*%\s*2\s*===\s*0\s*\?/);
```
-If the `array.length` is even, your `median` variable should use the `getMean` function to calculate the mean of the two middle numbers. Your first argument should be the value of `sorted` at `array.length / 2`, and the second at `array.length / 2 - 1`.
+Se `array.length` è pari, la variabile `median` dovrebbe utilizzare la funzione `getMean` per calcolare la media dei due numeri centrali. Il primo argomento dovrebbe essere il valore di `sorted` ad `array.length / 2` e il secondo ad `array.length / 2 - 1`.
```js
assert.match(getMedian.toString(), /median\s*=\s*array\.length\s*%\s*2\s*===\s*0\s*\?\s*getMean\(\s*\[sorted\[array\.length\s*\/\s*2\]\s*,\s*sorted\[\s*array\.length\s*\/\s*2\s*-\s*1\]\]\)\s*\:/);
```
-If the `array.length` is odd, your `median` variable should assign the middle number to the `median` variable. The middle number is the value of `sorted` at `Math.floor(array.length / 2)`.
+Se `array.length` è dispari, la variabile `median` dovrebbe assegnare il numero centrale alla variabile `median`. Il numero centrale è il valore di `sorted` a `Math.floor(array.length / 2)`.
```js
assert.match(getMedian.toString(), /median\s*=\s*array\.length\s*%\s*2\s*===\s*0\s*\?\s*getMean\(\s*\[sorted\[array\.length\s*\/\s*2\]\s*,\s*sorted\[\s*array\.length\s*\/\s*2\s*-\s*1\]\]\)\s*\:\s*sorted\[\s*Math\.floor\(\s*array\.length\s*\/\s*2\)\];/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md
index 5306ff72463..c4c11cf9a09 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md
@@ -7,13 +7,13 @@ dashedName: step-23
# --description--
-Finally, return the value of `median`.
+Infine, devi restituire il valore di `median`.
-Like the `getMean` function, you could condense this code into one line and reduce the number of variables you instantiate. However, it is important to remember that shorter code is not always better code. In this case, reducing the lines of code would make the code harder to read and understand, impacting future maintainability.
+Come per la funzione `getMean`, puoi condensare questo codice in una riga e ridurre il numero di variabili da istanziare. Tuttavia, è importante ricordare che il codice più breve non è sempre quello migliore. In questo caso, ridurre le righe renderebbe il codice più difficile da leggere e comprendere, con un impatto sulla futura manutenzione.
# --hints--
-Your `getMedian` function should return the value of `median`.
+La funzione `getMedian` dovrebbe restituire il valore di `median`.
```js
assert.match(getMedian.toString(), /return\s+median;/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md
index 0f80bd629be..5505762fde7 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md
@@ -7,25 +7,25 @@ dashedName: step-24
# --description--
-Like you did with your `getMean` function, you need to add your `getMedian` function to your `calculate` logic.
+Come hai fatto con la funzione `getMean`, devi aggiungere la funzione `getMedian` alla logica di `calculate`.
-Declare a variable `median` and assign it the value of `getMedian(numbers)`. Then, query the DOM for the `#median` element and set the `textContent` to `median`.
+Dichiara una variabile `median` e assegnale il valore di `getMedian(numbers)`. Quindi, seleziona nel DOM l'elemento `#median` e imposta `textContent` su `median`.
# --hints--
-Your `calculate` function should have a `median` variable.
+La funzione `calculate` dovrebbe avere una variabile `median`.
```js
assert.match(calculate.toString(), /median\s*=/);
```
-Your `median` variable should be assigned the value of `getMedian(numbers)`.
+Alla variabile `median` dovrebbe essere assegnato il valore di `getMedian(numbers)`.
```js
assert.match(calculate.toString(), /median\s*=\s*getMedian\(numbers\)/);
```
-Your `calculate` function should query the DOM for the `#median` element and set the `textContent` to `median`.
+La funzione `calculate` dovrebbe selezionare nel DOM l'elemento `#median` e impostarne il `textContent` su `median`.
```js
assert.match(calculate.toString(), /document\.querySelector\(('|")#median\1\)\.textContent\s*=\s*median/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e80e024e89111600edfb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e80e024e89111600edfb.md
index 8a691bd9d5c..42e55272ecd 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e80e024e89111600edfb.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e80e024e89111600edfb.md
@@ -7,23 +7,23 @@ dashedName: step-25
# --description--
-Your next calculation is the mode, which is the number that appears most often in the list. To get started, declare a `getMode` function that takes the same `array` parameter you have been using.
+Il prossimo calcolo è la moda, che è il numero che appare più spesso nella lista. Per iniziare, dichiara una funzione `getMode` che prende lo stesso parametro `array` che stavi utilizzando.
# --hints--
-You should declare a `getMode` function.
+Dovresti dichiarare una funzione `getMode`.
```js
assert.isFunction(getMode);
```
-Your `getMode` function should take a parameter named `array`.
+La funzione `getMode` dovrebbe prendere un parametro chiamato `array`.
```js
assert.match(getMode.toString(), /\(\s*array\s*\)/);
```
-Your `getMode` function should be empty.
+La funzione `getMode` dovrebbe essere vuota.
```js
assert.match(getMode.toString(), /\(\s*array\s*\)\s*\{\s*\}/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md
index 8473932561c..544e799a532 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md
@@ -7,17 +7,17 @@ dashedName: step-26
# --description--
-In your new function, declare an empty `counts` object. You will use this to track the number of times each number appears in the list.
+Nella nuova funzione, dichiara un oggetto `counts` vuoto. Lo userai per tracciare il numero di volte in cui ogni numero apparirà nella lista.
# --hints--
-Your `getMode` function should have a `counts` variable.
+La funzione `getMode` dovrebbe avere una variabile `counts`.
```js
assert.match(getMode.toString(), /counts\s*=/);
```
-Your `counts` variable should be an empty object.
+La variabile `counts` dovrebbe essere un oggetto vuoto.
```js
assert.match(getMode.toString(), /counts\s*=\s*\{\s*\};/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md
index 8f07fdfe9ee..a7dafcf1bff 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md
@@ -7,26 +7,26 @@ dashedName: step-27
# --description--
-Remember that the `.forEach()` method allows you to run a callback function for each element in the array.
+Ricorda che il metodo `.forEach()` consente di eseguire una funzione callback per ogni elemento nell'array.
-Use the `.forEach()` method to loop through the `array`. In the callback, use the `el` argument to access the `counts` object and increment the count for each number.
+Usa il metodo `.forEach()` per iterare su `array`. Nella callback, utilizza l'argomento `el` per accedere all'oggetto `counts` e aumentare il conteggio per ogni numero.
# --hints--
-Your `getMode` function should use the `.forEach()` method.
+La funzione `getMode` dovrebbe usare il metodo `.forEach()`.
```js
assert.match(getMode.toString(), /array\.forEach\(/);
```
-Your `.forEach()` method should have a callback function which takes an `el` argument.
+Il metodo `.forEach()` dovrebbe avere una funzione callback che prende un argomento `el`.
```js
console.log(getMode.toString());
assert.match(getMode.toString(), /(array\.forEach\(\(?\s*el\s*\)?\s*=>|array\.forEach\(function\s*\(?el\)?\s*\{)/);
```
-Your `.forEach()` method should increment the count for each number. Don't forget the fallback value.
+Il metodo `.forEach()` dovrebbe incrementare il conteggio per ogni numero. Non dimenticare il valore di fallback.
```js
assert.match(getMode.toString(), /(array\.forEach\(\(?\s*el\s*\)?\s*=>|array\.forEach\(function\s*\(?el\)?\s*\{)\s*\{?\s*(return)?\s*counts\[\s*el\s*\]\s*=\s*\(\s*counts\[\s*el\s*\]\s*\|\|\s*0\s*\)\s*\+\s*1\s*\}?/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md
index fec7d654aa5..48c8c8f491a 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md
@@ -7,33 +7,33 @@ dashedName: step-28
# --description--
-There are a few edge cases to account for when calculating the mode of a dataset. First, if every value appears the same number of times, there is no mode.
+Ci sono alcuni casi limite da considerare quando si calcola la moda di un insieme di dati. In primo luogo, se ogni valore appare lo stesso numero di volte, non c'è moda.
-To calculate this, you will use a `Set`. A `Set` is a data structure that only allows unique values. If you pass an array into the `Set` constructor, it will remove any duplicate values.
+Per questo calcolo, userai un `Set`. Un `Set` è una struttura di dati che consente solo valori unici. Se passi un array nel costruttore `Set`, rimuoverà qualsiasi valore duplicato.
-Start by creating an `if` statement. In the condition, create a `Set` with `new Set()` and pass it the `Object.values()` of your `counts` object. If the `size` property of this `Set` is equal to `1`, that tells you every value appears the same number of times. In this case, return `null` from your function.
+Inizia creando un'istruzione`if`. Nella condizione, crea un `Set` con `new Set()` e passagli `Object.values()` dell'oggetto `counts`. Se la proprietà `size` di questo `Set` è uguale a `1`, ogni valore appare lo stesso numero di volte. In questo caso, restituisci `null` dalla tua funzione.
# --hints--
-Your `getMode` function should have an `if` statement.
+La funzione `getMode` dovrebbe avere un'istruzione `if`.
```js
assert.match(getMode.toString(), /if\s*\(/);
```
-Your `if` statement should create a new `Set` and pass the `Object.values()` of your `counts` object.
+L'istruzione `if` dovrebbe creare un nuovo `Set` e passare `Object.values()` dell'oggetto `counts`.
```js
assert.match(getMode.toString(), /if\s*\(\s*new\s+Set\s*\(\s*Object\.values\s*\(\s*counts\s*\)/);
```
-Your `if` statement should check if the `size` property of the new `Set` is equal to `1`.
+L'istruzione `if` dovrebbe verificare se la proprietà `size` del nuovo `Set` è uguale a `1`.
```js
assert.match(getMode.toString(), /if\s*\(\s*new\s+Set\s*\(\s*Object\.values\s*\(\s*counts\s*\)\s*\)\s*\.size\s*===\s*1/);
```
-Your `if` statement should return `null` if the `size` property of the new `Set` is equal to `1`.
+L'istruzione `if` dovrebbe restituire `null` se la proprietà `size` del nuovo `Set` è uguale a `1`.
```js
assert.match(getMode.toString(), /if\s*\(\s*new\s+Set\s*\(\s*Object\.values\s*\(\s*counts\s*\)\s*\)\.size\s*===\s*1\s*\)\s*\{?\s*return\s+null;\s*\}?/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md
index b7b8aa2f930..aaa1609de1d 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md
@@ -7,25 +7,25 @@ dashedName: step-29
# --description--
-Now you need to find the value that occurs with the highest frequency. You'll use the `Object.keys()` method for this.
+Ora devi trovare il valore che si presenta con la frequenza più alta. Per questo utilizzerai il metodo `Object.keys()`.
-Start by declaring a `highest` variable, and assigning it the value of the `counts` object's `Object.keys()` method.
+Inizia dichiarando una variabile `highest` e assegnandole il valore del metodo `Object.keys()` dell'oggetto `counts`.
# --hints--
-Your `getMode` function should have a `highest` variable.
+La funzione `getMode` dovrebbe avere una variabile `highest`.
```js
assert.match(getMode.toString(), /highest\s*=/);
```
-Your `getMode` function should use the `Object.keys()` method to get the keys of the `counts` object.
+La funzione `getMode` dovrebbe usare il metodo `Object.keys()` per ottenere le chiavi dell'oggetto `counts`.
```js
assert.match(getMode.toString(), /Object\.keys\(\s*counts\s*\)/);
```
-Your `getMode` function should use the `Object.keys()` method to get the keys of the `counts` object and assign them to the `highest` variable.
+La funzione `getMode` dovrebbe usare il metodo `Object.keys()` per ottenere le chiavi dell'oggetto `counts` e assegnarle alla variabile `highest`.
```js
assert.match(getMode.toString(), /highest\s*=\s*Object\.keys\(\s*counts\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md
index cc699ca81f3..0990450ecab 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md
@@ -7,33 +7,33 @@ dashedName: step-30
# --description--
-Now you need to sort the values properly. Chain the `.sort()` method to your `Object.keys()` call.
+Ora devi riordinare correttamente i valori. Concatena il metodo `.sort()` alla chiamata `Object.keys()`.
-For the callback, you'll need to use the `counts` object to compare the values of each key. You can use the `a` and `b` parameters to access the keys. Then, return the value of `counts[b]` minus the value of `counts[a]`.
+Per la callback, dovrai usare l'oggetto `counts` per confrontare i valori di ogni chiave. Puoi usare i parametri `a` e `b` per accedere alle chiavi. Quindi, restituisci il valore di `counts[b]` meno il valore di `counts[a]`.
-Finally, access the first element in the array using bracket notation to complete your `highest` variable.
+Infine, accedi al primo elemento nell'array usando la notazione a parentesi per completare la variabile `highest`.
# --hints--
-Your `getMode` function should use the `sort` method to sort the `Object.keys()` array.
+La funzione `getMode` dovrebbe usare il metodo `sort` per riordinare l'array `Object.keys()`.
```js
assert.match(getMode.toString(), /highest\s*=\s*Object\.keys\(\s*counts\s*\)\.sort\(/)
```
-Your `getMode` function should pass a callback to the `sort` method with parameters `a` and `b`.
+La funzione `getMode` dovrebbe passare una callback al metodo `sort` con i parametri `a` e `b`.
```js
assert.match(getMode.toString(), /highest\s*=\s*Object\.keys\(\s*counts\s*\)\.sort\(function\s*\(\s*a\s*,\s*b\s*\)/)
```
-Your `getMode` function should use the `sort` method to sort the `Object.keys()` array and return the value of `counts[b]` minus the value of `counts[a]`.
+La funzione `getMode` dovrebbe usare il metodo `sort` per riordinare l'array `Object.keys()` e restituire il valore di `counts[b]` meno il valore di `counts[a]`.
```js
assert.match(getMode.toString(), /highest\s*=\s*Object\.keys\(\s*counts\s*\)\.sort\(\s*function\s*\(\s*a\s*,\s*b\s*\)\s*\{\s*return\s*counts\[\s*b\s*\]\s*-\s*counts\[\s*a\s*\];?\s*\}\s*\)/)
```
-Your `highest` variable should have the value of the first entry in the sorted `Object.keys(counts)` array.
+La variabile `highest` dovrebbe avere il valore della prima voce nell'array `Object.keys(counts)` ordinato.
```js
assert.match(getMode.toString(), /highest\s*=\s*Object\.keys\(\s*counts\s*\)\.sort\(\s*function\s*\(\s*a\s*,\s*b\s*\)\s*\{\s*return\s*counts\[\s*b\s*\]\s*-\s*counts\[\s*a\s*\];?\s*\}\s*\)\[0\];/)
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md
index 381683844e0..1477bb78361 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md
@@ -7,19 +7,19 @@ dashedName: step-31
# --description--
-If multiple numbers in a series occur at the same highest frequency, they are all considered the mode. Otherwise, the mode is the number that occurs most often, that single number is the mode.
+Se più numeri in una serie si presentano con la stessa frequenza più alta, sono tutti considerati la moda. Otherwise, the mode is the number that occurs most often, that single number is the mode.
-Thankfully, you can handle both of these cases at once with the `.filter()` method. Start by declaring a `mode` variable and assigning it the value of `Object.keys(counts)`.
+Per fortuna, è possibile gestire entrambi questi casi contemporaneamente con il metodo `.filter()`. Inizia dichiarando una variabile `mode` e assegnandole il valore di `Object.keys(counts)`.
# --hints--
-Your `getMode` function should have a `mode` variable.
+La funzione `getMode` dovrebbe avere una variabile `mode`.
```js
assert.match(getMode.toString(), /mode\s*=/);
```
-Your `getMode` function should use the `Object.keys()` method to get the keys of the `counts` object and assign them to the `mode` variable.
+La funzione `getMode` dovrebbe usare il metodo `Object.keys()` per ottenere le chiavi dell'oggetto `counts` e assegnarle alla variabile `mode`.
```js
assert.match(getMode.toString(), /mode\s*=\s*Object\.keys\(\s*counts\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md
index fa1ae3702f8..85e9e2ed36c 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md
@@ -7,23 +7,23 @@ dashedName: step-32
# --description--
-Now chain the filter method to your latest `Object.keys()` call. The callback function should return whether the value of `counts[el]` is equal to your `counts[highest]`.
+Adesso concatena il metodo filter all'ultima chiamata `Object.keys()`. La funzione callback dovrebbe restituire se il valore di `counts[el]` è uguale a `counts[highest]`.
# --hints--
-You should chain `.filter()` to your last `Object.keys()` call.
+Dovresti concatenare `.filter()` all'ultima chiamata `Object.keys()`.
```js
assert.match(getMode.toString(), /mode\s*=\s*Object\.keys\(\s*counts\s*\)\.filter\(/);
```
-Your `.filter()` method should take a callback function with a parameter `el`.
+Il metodo `.filter()` dovrebbe prendere una funzione callback con un parametro `el`.
```js
assert.match(getMode.toString(), /mode\s*=\s*Object\.keys\(\s*counts\s*\)\.filter\(function\s*\(\s*el\s*\)/);
```
-Your `.filter()` method should return whether the value of `counts[el]` is equal to `counts[highest]`.
+Il metodo `.filter()` dovrebbe restituire se il valore di `counts[el]` è uguale a `counts[highest]`.
```js
assert.match(getMode.toString(), /mode\s*=\s*Object\.keys\(\s*counts\s*\)\.filter\(function\s*\(\s*el\s*\)\s*\{\s*return\s*counts\[\s*el\s*\]\s*===\s*counts\[\s*highest\s*\];\s*\}/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md
index 41d854b50bc..0ac5cc272ec 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md
@@ -7,25 +7,25 @@ dashedName: step-33
# --description--
-Time to return your `mode` variable.
+È il momento di restituire la variabile `mode`.
-`mode` is an array, so return it as a string with the `.join()` method. Separate the elements with a comma followed by a space.
+`mode` è un array, quindi restituiscilo come una stringa con il metodo `.join()`. Separa gli elementi con una virgola seguita da uno spazio.
# --hints--
-Your `getMode` function should return the `mode` variable.
+La funzione `getMode` dovrebbe avere restituire la variabile `mode`.
```js
assert.match(getMode.toString(), /return\s*mode\s*/)
```
-Your `mode` variable should be returned as a string with the `join` method.
+La variabile `mode` dovrebbe essere restituita come una stringa con il metodo `join`.
```js
assert.match(getMode.toString(), /return\s*mode\.join\(/)
```
-You should separate the elements of the `mode` array with a comma and a space.
+Dovresti separare gli elementi dell'array `mode` con una virgola e uno spazio.
```js
assert.match(getMode.toString(), /return\s*mode\.join\(\s*('|"),\s\1\s*\);/)
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md
index 9ef808c7073..930ec13ffea 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md
@@ -7,17 +7,17 @@ dashedName: step-34
# --description--
-Add your `getMode()` function to your `calculate` logic, and update the respective HTML element.
+Aggiungi la funzione `getMode()` alla logica di `calculate` e aggiorna i rispettivi elementi HTML.
# --hints--
-Your `calculate` function should have a `mode` variable with the value of `getMode(numbers)`.
+La funzione `calculate` dovrebbe avere una variabile `mode` con il valore `getMode(numbers)`.
```js
assert.match(calculate.toString(), /mode\s*=\s*getMode\(\s*numbers\s*\);/);
```
-Your `calculate` function should query the DOM for the `#mode` element and set the `textContent` to `mode`.
+La funzione `calculate` dovrebbe selezionare nel DOM l'elemento `#mode` e impostare `textContent` su `mode`.
```js
assert.match(calculate.toString(), /document\.querySelector\(('|")#mode\1\)\.textContent\s*=\s*mode;/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md
index c88ce39ce83..38a4342ba19 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md
@@ -7,31 +7,31 @@ dashedName: step-35
# --description--
-Your next calculation is the range, which is the difference between the largest and smallest numbers in the list.
+Il tuo prossimo calcolo è l'intervallo, che è la differenza tra il numero più grande e quello più piccolo dell'elenco.
-You previously learned about the global `Math` object. `Math` has a `.min()` method to get the smallest number from a series of numbers, and the `.max()` method to get the largest number. Here's an example that gets the smallest number from an array:
+Precedentemente hai conosciuto l'oggetto globale `Math`. `Math` ha un metodo `.min()` per ottenere il numero più piccolo da una serie di numeri e il metodo `.max()` per ottenere il numero più grande. Ecco un esempio in cui si ottiene il numero più piccolo da un array:
```js
Math.min(1, 9, 11, -3, 0.5);
```
-Declare a `getRange` function that takes the same `array` parameter you have been using. Using `Math.min()`, `Math.max()`, and the spread operator, return the difference between the largest and smallest numbers in the list.
+Dichiara una funzione `getRange` che prende lo stesso parametro `array` che stavi usando. Usando `Math.min()`, `Math.max()` e l'operatore spread, restituisci la differenza tra il numero più grande e il numero più piccolo nella lista.
# --hints--
-You should define a `getRange` function.
+Dovresti definire una funzione `getRange`.
```js
assert.isFunction(getRange);
```
-Your `getRange` function should take an `array` parameter.
+La funzione `getRange` dovrebbe prendere un parametro `array`.
```js
assert.match(getRange.toString(), /array/);
```
-Your `getRange` function should use the spread operator on the `array` parameter.
+La funzione `getRange` dovrebbe usare l'operatore spread sul parametro `array`.
```js
assert.match(code.split("getRange")[1], /\.\.\.array/);
@@ -49,7 +49,7 @@ Your `getRange` function should use `Math.min` on the spread `array` parameter.
assert.match(code.split("getRange")[1], /Math\.min\(\s*\.\.\.array\s*\)/);
```
-Your `getRange` function should return the difference between the largest and smallest numbers in the list.
+La funzione `getRange` dovrebbe restituire la differenza tra il numero più grande e quello più piccolo della lista.
```js
assert.equal(getRange([1, 2, 3, 4, 5]), 4);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md
index d562fff11bf..19679aa9675 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md
@@ -7,17 +7,17 @@ dashedName: step-36
# --description--
-Add the logic for calculating and displaying the range to your `calculate` function.
+Aggiungi la logica per calcolare e visualizzare l'intervallo alla funzione `calculate`.
# --hints--
-Your `calculate` function should set a `range` variable to the result of `getRange(numbers)`.
+La funzione `calculate` dovrebbe impostare una variabile `range` con il risultato di `getRange(numbers)`.
```js
assert.match(calculate.toString(), /range\s*=\s*getRange\(numbers\);/);
```
-Your `calculate` function should set the `#range` element's `textContent` to the `range` variable.
+La funzione `calculate` dovrebbe impostare il `textContent` dell'elemento `#range` con la variabile `range`.
```js
assert.match(calculate.toString(), /document\.querySelector\(('|")#range\1\)\.textContent\s*=\s*range;/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md
index c19384026eb..69906f10c85 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md
@@ -7,31 +7,31 @@ dashedName: step-37
# --description--
-The variance of a series represents how much the data deviates from the mean, and can be used to determine how spread out the data are. The variance is calculated in a few steps.
+La varianza di una serie rappresenta quanto i dati deviano dalla media e può essere usata per determinare quanto sono distribuiti. La varianza viene calcolata in diversi passaggi.
-Start by declaring a `getVariance` function that takes an `array` parameter. Within that function, declare a `mean` variable and assign it the value of the `getMean` function, passing `array` as the argument.
+Inizia dichiarando una funzione `getVariance` che prende un parametro `array`. All'interno di tale funzione, dichiara una variabile `mean` e assegnale il valore della funzione `getMean` passando `array` come argomento.
# --hints--
-You should define a `getVariance` function.
+Dovresti definire una funzione `getVariance`.
```js
assert.isFunction(getVariance);
```
-Your `getVariance` function should take an `array` parameter.
+La funzione `getVariance` dovrebbe prendere un parametro `array`.
```js
assert.match(getVariance.toString(), /array/);
```
-Your `getVariance` function should declare a `mean` variable.
+La funzione `getVariance` dovrebbe dichiarare una variabile `mean`.
```js
assert.match(getVariance.toString(), /mean\s*=/);
```
-Your `mean` variable should be assigned the value of the `getMean` function, passing the `array` argument.
+La variabile `mean` dovrebbe essere assegnata al valore della funzione `getMean` passando l'argomento `array`.
```js
assert.match(getVariance.toString(), /mean\s*=\s*getMean\(\s*array\s*\);/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md
index 5deeebe823b..282d03d80a4 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md
@@ -7,29 +7,29 @@ dashedName: step-38
# --description--
-The next step is to calculate how far each element is from the mean. Declare a `differences` variable, and assign it the value of `array.map()`. For the callback, return the value of `el` minus `mean`.
+Il passo successivo è quello di calcolare quanto è lontano dalla media ogni elemento. Dichiara una variabile `differences` e assegnale il valore di `array.map()`. Per la callback, restituisci il valore di `el` meno `mean`.
# --hints--
-Your `getVariance` function should have a `differences` variable.
+La funzione `getVariance` dovrebbe avere una variabile `differences`.
```js
assert.match(getVariance.toString(), /differences\s*=/);
```
-Your `differences` variable should use the `array.map()` method.
+La variabile `differences` dovrebbe utilizzare il metodo `array.map()`.
```js
assert.match(getVariance.toString(), /differences\s*=\s*array\.map\(/);
```
-Your `differences` variable should use the `el` parameter in the callback function.
+La variabile `differences` dovrebbe utilizzare il parametro `el` nella funzione callback.
```js
assert.match(getVariance.toString(), /differences\s*=\s*array\.map\(function\s*\(?\s*el\s*\)?/);
```
-Your `map` callback should return the value of `el` minus `mean`.
+La callback di `map` dovrebbe restituire il valore di `el` meno `mean`.
```js
assert.match(getVariance.toString(), /differences\s*=\s*array\.map\(function\s*\(?\s*el\s*\)?\s*\{\s*return\s*el\s*-\s*mean;?\s*\}/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md
index 97df312aae6..8d94f244907 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md
@@ -7,37 +7,37 @@ dashedName: step-39
# --description--
-The next step is to square each of the differences. To square a value, you can use the `**` operator. For example, `3 ** 2` would return `9`.
+Il passo successivo è elevare al quadrato ogni scarto. Per elevare un valore al quadrato puoi usare l'operatore `**`. Ad esempio, `3 ** 2` restituisce `9`.
-Declare a `squaredDifferences` variable, and assign it the value of `differences.map()`. For the callback, return the value of `el` squared.
+Dichiara una variabile `squaredDifferences` e assegnale il valore di `differences.map()`. Per la callback, restituisci il valore di `el` al quadrato.
# --hints--
-You should have a `squaredDifferences` variable.
+Dovresti avere una variabile `squaredDifferences`.
```js
assert.match(getVariance.toString(), /squaredDifferences\s*=/);
```
-Your `squaredDifferences` variable should use the `differences.map()` method.
+La variabile `squaredDifferences` dovrebbe utilizzare il metodo `differences.map()`.
```js
assert.match(getVariance.toString(), /squaredDifferences\s*=\s*differences\.map\(/);
```
-Your `squaredDifferences` variable should use the `el` parameter in the callback function.
+La variabile `squaredDifferences` dovrebbe utilizzare il parametro `el` nella funzione callback.
```js
assert.match(getVariance.toString(), /squaredDifferences\s*=\s*differences\.map\(function\s*\(?\s*el\s*\)?/);
```
-Your `map` callback should return the value of `el` squared.
+La callback di `map` dovrebbe restituire il valore di `el` al quadrato.
```js
assert.match(getVariance.toString(), /squaredDifferences\s*=\s*differences\.map\(function\s*\(?\s*el\s*\)?\s*\{\s*return\s*Math\.pow\(\s*el\s*,\s*2\s*\);\s*\}/);
```
-Your `map` callback should use the `**` operator.
+La callback di `map` dovrebbe utilizzare l'operatore `**`.
```js
assert.match(code.split("getVariance")[1], /el\s*\*\*\s*2/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md
index a2b550ebf67..83f5f4727ad 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md
@@ -7,31 +7,31 @@ dashedName: step-40
# --description--
-Next, you need to take the sum of the squared differences.
+Il prossimo passo è trovare la somma degli scarti quadratici.
-Declare a `sumSquaredDifferences` variable, and assign it the value of `squaredDifferences.reduce()`. For the callback, return the sum of `acc` and `el`. Remember to set the initial value to `0`.
+Dichiara una variabile `sumSquaredDifferences` e assegnale il valore di `squaredDifferences.reduce()`. Per la callback, restituisci la somma di `acc` e `el`. Ricordati di impostare il valore iniziale a `0`.
# --hints--
-You should have a `sumSquaredDifferences` variable.
+Dovresti avere una variabile `sumSquaredDifferences`.
```js
assert.match(getVariance.toString(), /sumSquaredDifferences\s*=/);
```
-Your `sumSquaredDifferences` variable should use the `squaredDifferences.reduce()` method.
+La variabile `sumSquaredDifferences` dovrebbe utilizzare il metodo `squaredDifferences.reduce()`.
```js
assert.match(getVariance.toString(), /sumSquaredDifferences\s*=\s*squaredDifferences\.reduce\(/);
```
-Your `sumSquaredDifferences` variable should use the `acc` and `el` parameters in the callback function.
+La variabile `sumSquaredDifferences` dovrebbe utilizzare i parametri `acc` e `el` nella funzione callback.
```js
assert.match(getVariance.toString(), /sumSquaredDifferences\s*=\s*squaredDifferences\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?/);
```
-Your `reduce` callback should return the sum of `acc` and `el`.
+La callback di `reduce` dovrebbe restituire la somma di `acc` e `el`.
```js
console.log(getVariance.toString());
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md
index a9de0de327d..ebd40b3efb9 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md
@@ -7,55 +7,55 @@ dashedName: step-41
# --description--
-With two `.map()` calls and a `.reduce()` call, you're creating extra arrays and iterating more times than needed. You should move all of the logic into the `.reduce()` call to save time and memory.
+Con due chiamate `.map()` e una chiamata `.reduce()` stai creando degli array extra e iterando più volte del necessario. Dovresti spostare tutta la logica nella chiamata `.reduce()` per risparmiare tempo e memoria.
-Remove the `differences`, `squaredDifferences`, and `sumSquaredDifferences` variables (and their values). Declare a `variance` variable, and assign it the value of `array.reduce()`. For the callback, pass in your standard `acc` and `el` parameters, but leave the function body empty for now. Don't forget to set the initial value to `0`.
+Rimuovi le variabili `differences`, `squaredDifferences` e `sumSquaredDifferences` (e i loro valori). Dichiara una variabile `variance` e assegnale il valore di `array.reduce()`. Per la callback, passa i parametri standard `acc` e `el` ma per ora lascia vuoto il corpo della funzione. Non dimenticare di impostare il valore iniziale a `0`.
# --hints--
-You should remove the `differences` variable.
+Dovresti rimuovere la variabile `differences`.
```js
assert.notMatch(getVariance.toString(), /differences\s*=/);
```
-You should remove the `squaredDifferences` variable.
+Dovresti rimuovere la variabile `squaredDifferences`.
```js
assert.notMatch(getVariance.toString(), /squaredDifferences\s*=/);
```
-You should remove the `sumSquaredDifferences` variable.
+Dovresti rimuovere la variabile `sumSquaredDifferences`.
```js
assert.notMatch(getVariance.toString(), /sumSquaredDifferences\s*=/);
```
-You should have a `variance` variable.
+Dovresti avere una variabile `variance`.
```js
assert.match(getVariance.toString(), /variance\s*=/);
```
-Your `variance` variable should use the `array.reduce()` method.
+La variabile `variance` dovrebbe utilizzare il metodo `array.reduce()`.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(/);
```
-Your `variance` variable should use the `acc` and `el` parameters in the callback function.
+La variabile `variance` dovrebbe utilizzare i parametri `acc` e `el` nella funzione callback.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?/);
```
-Your `reduce` callback should be an empty function.
+La callback di `reduce` dovrebbe essere una funzione vuota.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*\}/);
```
-Your `reduce` callback should have an initial value of `0`.
+La callback di `reduce` dovrebbe avere un valore iniziale di `0`.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*\}\s*,\s*0\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md
index 2a4c44726d9..a66f21ea959 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md
@@ -7,41 +7,41 @@ dashedName: step-42
# --description--
-Within your empty `.reduce()` callback, declare a variable `difference` and set it to the value of `el` minus `mean`. Then declare a `squared` variable, and set it to the value of `difference` to the power of `2`. Finally, return the value of `acc` plus `squared`.
+All'interno della callback vuota di `.reduce()`, dichiara una variabile `difference` e impostala con il valore di `el` meno `mean`. Quindi dichiara una variabile `squared` e impostala sul valore di `difference` elevata alla potenza di `2`. Infine, restituisci il valore di `acc` più `squared`.
# --hints--
-Your `reduce` callback should have a `difference` variable.
+La callback di `reduce` dovrebbe avere una variabile `difference`.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=/);
```
-Your `difference` variable should be set to the value of `el` minus `mean`.
+La variabile `difference` dovrebbe essere impostata con il valore di `el` meno `mean`.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;/);
```
-Your `reduce` callback should have a `squared` variable.
+La callback di `reduce` dovrebbe avere una variabile `squared`.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;\s*var\s*squared\s*=/);
```
-Your `squared` variable should be set to the value of `difference` to the power of 2.
+La variabile `squared` dovrebbe essere impostata sul valore di `difference` elevata alla potenza di 2.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;\s*var\s*squared\s*=\s*Math\.pow\(\s*difference\s*,\s*2\s*\);/);
```
-Your `reduce` callback should return the value of `acc` plus `squared`.
+La callback di `reduce` dovrebbe restituire il valore di `acc` più `squared`.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;\s*var\s*squared\s*=\s*Math\.pow\(\s*difference\s*,\s*2\s*\);\s*return\s*acc\s*\+\s*squared\s*;/);
```
-You should not remove the initial value of `0` from your `.reduce()` method.
+Non dovresti rimuovere il valore iniziale di `0` dal metodo `.reduce()`.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;\s*var\s*squared\s*=\s*Math\.pow\(\s*difference\s*,\s*2\s*\);\s*return\s*acc\s*\+\s*squared\s*;\s*\}\s*,\s*0\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md
index c028581116d..a34b42ea33d 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md
@@ -7,19 +7,19 @@ dashedName: step-43
# --description--
-The final step in calculating the variance is to divide the sum of the squared differences by the count of numbers.
+Il passaggio finale per calcolare la varianza è dividere la somma degli scarti quadratici per il conteggio dei numeri.
-Divide your `.reduce()` call by the length of the array (in your `variance` declaration). Then, return `variance`.
+Dividi la chiamata `.reduce()` per la lunghezza dell'array (nella dichiarazione di `variance`). Quindi, restituisci `variance`.
# --hints--
-You should divide the result of the `.reduce()` call by the length of the array.
+Dovresti dividere il risultato della chiamata `.reduce()` per la lunghezza dell'array.
```js
assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;\s*var\s*squared\s*=\s*Math\.pow\(\s*difference\s*,\s*2\s*\);\s*return\s*acc\s*\+\s*squared\s*;\s*\}\s*,\s*0\)\s*\/\s*array\.length;/);
```
-You should return the value of `variance`.
+Dovresti restituire il valore di `variance`.
```js
assert.match(getVariance.toString(), /return\s*variance\s*;/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md
index 2d2caf9b81e..e0af472a878 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md
@@ -7,17 +7,17 @@ dashedName: step-44
# --description--
-Add your new `getVariance` function to the `calculate` function, and update the respective HTML element.
+Aggiungi la nuova funzione `getVariance` alla logica della funzione `calculate` e aggiorna i rispettivi elementi HTML.
# --hints--
-Your `calculate` function should have a `variance` variable set to the value of `getVariance(numbers)`.
+La funzione `calculate` dovrebbe avere una variabile `variance` impostata con il valore di `getVariance(numbers)`.
```js
assert.match(calculate.toString(), /variance\s*=\s*getVariance\(\s*numbers\s*\)/);
```
-You should set the `textContent` of the `#variance` element to the value of the `variance` variable.
+Dovresti impostare il `textContent` dell'elemento `#variance` con il valore della variabile `variance`.
```js
assert.match(calculate.toString(), /document\.querySelector\(('|")#variance\1\)\.textContent\s*=\s*variance/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md
index 40bae5a85aa..cb15c9e9844 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md
@@ -7,31 +7,31 @@ dashedName: step-45
# --description--
-Your final calculation is the standard deviation, which is the square root of the variance.
+Il tuo ultimo calcolo è la deviazione standard, che è la radice quadrata della varianza.
-Begin by declaring a `getStandardDeviation` function, with the `array` parameter. In the function body, declare a `variance` variable and assign it the variance of the `array`.
+Inizia dichiarando una funzione `getStandardDeviation` con il parametro `array`. Nel corpo della funzione, dichiara una variabile `variance` e assegnale la varianza di `array`.
# --hints--
-You should have a `getStandardDeviation` function.
+Dovresti definire una funzione `getStandardDeviation`.
```js
assert.isFunction(getStandardDeviation);
```
-Your `getStandardDeviation` function should have an `array` parameter.
+La funzione `getStandardDeviation` dovrebbe avere un parametro `array`.
```js
assert.match(getStandardDeviation.toString(), /array/);
```
-Your `getStandardDeviation` function should have a `variance` variable.
+La funzione `getStandardDeviation` dovrebbe avere una variabile `variance`.
```js
assert.match(getStandardDeviation.toString(), /variance\s*=/);
```
-Your `variance` variable should have the value of `getVariance(array)`.
+La variabile `variance` dovrebbe avere il valore di `getVariance(array)`.
```js
assert.match(getStandardDeviation.toString(), /variance\s*=\s*getVariance\(\s*array\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md
index daa8ca0fda1..010d1e85509 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md
@@ -7,31 +7,31 @@ dashedName: step-46
# --description--
-To calculate a root exponent, such as $\sqrt[n]{x}$, you can use an inverted exponent $x^{1/n}$.
+Per calcolare l'esponente di una radice, come $\sqrt[n]{x}$, puoi usare l'esponente reciproco $x^{1/n}$.
-Declare a `standardDeviation` variable, and use the `Math.pow()` function to assign it the value of $variance^{1/2}$.
+Dichiara una variabile `standardDeviation` e usa la funzione `Math.pow()` per assegnarle il valore di $variance^{1/2}$.
# --hints--
-You should have a `standardDeviation` variable.
+Dovresti avere una variabile `standardDeviation`.
```js
assert.match(getStandardDeviation.toString(), /standardDeviation\s*=/);
```
-Your `standardDeviation` variable should use the `Math.pow()` function.
+La variabile `standardDeviation` dovrebbe utilizzare la funzione `Math.pow()`.
```js
assert.match(getStandardDeviation.toString(), /standardDeviation\s*=\s*Math\.pow\(/);
```
-Your `standardDeviation` variable should use the `variance` variable.
+La variabile `standardDeviation` dovrebbe utilizzare la variabile `variance`.
```js
assert.match(getStandardDeviation.toString(), /standardDeviation\s*=\s*Math\.pow\(\s*variance\s*,/);
```
-Your `standardDeviation` variable should use the `1/2` exponent.
+La variabile `standardDeviation` dovrebbe utilizzare l'esponente `1/2`.
```js
assert.match(getStandardDeviation.toString(), /standardDeviation\s*=\s*Math\.pow\(\s*variance\s*,\s*1\s*\/\s*2\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md
index 0effb1d2fe9..e9f2b159258 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md
@@ -7,13 +7,13 @@ dashedName: step-47
# --description--
-The `Math` object has a `.sqrt()` method specifically for finding the square root of a number.
+L'oggetto `Math` ha un metodo `.sqrt()` specifico per trovare la radice quadrata di un numero.
-Change your `standardDeviation` variable to use this method instead of `Math.pow()`.
+Cambia la variabile `standardDeviation` in modo da utilizzare questo metodo invece di `Math.pow()`.
# --hints--
-Your `standardDeviation` variable should use `Math.sqrt()`.
+La variabile `standardDeviation` dovrebbe utilizzare la funzione `Math.sqrt()`.
```js
assert.match(getStandardDeviation.toString(), /standardDeviation\s*=\s*Math\.sqrt\(\s*variance\s*\);/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md
index 760063659a1..b1046b3e0b2 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md
@@ -7,11 +7,11 @@ dashedName: step-48
# --description--
-Return your `standardDeviation` variable.
+Restituisci la variabile `standardDeviation`.
# --hints--
-Your `getStandardDeviation` function should return the `standardDeviation` variable.
+La funzione `getStandardDeviation` dovrebbe restituire la variabile `standardDeviation`.
```js
assert.match(getStandardDeviation.toString(), /return\s*standardDeviation;/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md
index 015e50b74a6..5530227b162 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md
@@ -7,17 +7,17 @@ dashedName: step-49
# --description--
-Now update the `calculate` function to include the standard deviation logic, like you did with your other functions.
+Ora aggiorna la funzione `calculate` per includere la logica della deviazione standard, come hai fatto con le altre funzioni.
# --hints--
-Your `calculate` function should have a `standardDeviation` variable set to the result of `getStandardDeviation(numbers)`.
+La funzione `calculate` dovrebbe avere una variabile `standardDeviation` impostata con il risultato di `getStandardDeviation(numbers)`.
```js
assert.match(calculate.toString(), /standardDeviation\s*=\s*getStandardDeviation\(numbers\)/);
```
-You should update the `textContent` of the `#standardDeviation` element to be the `standardDeviation` variable.
+Dovresti aggiornare il `textContent` dell'elemento `#standardDeviation` con la variabile `standardDeviation`.
```js
assert.match(calculate.toString(), /document\.querySelector\(('|")#standardDeviation\1\)\.textContent\s*=\s*standardDeviation/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md
index 6ff38ec6626..f8213aee64f 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md
@@ -7,25 +7,25 @@ dashedName: step-50
# --description--
-There is one last thing to fix. The `.sort()` method mutates the array it's called on. It is generally bad practice to mutate a function argument, which `array` is.
+C'è un'ultima cosa da sistemare. Il metodo `.sort()` muta l'array su cui è chiamato. Generalmente è una cattiva pratica mutare un argomento di funzione, come `array`.
-To fix this, add an empty `.slice()` call before your `.sort()` method. The empty `.slice()` call will make a shallow copy of the `array`, which you are free to mutate.
+Per risolvere questo problema, aggiungi una chiamata vuota `.slice()` prima del metodo `.sort()`. La chiamata vuota `.slice()` farà una copia superficiale dell'`array` che puoi mutare liberamente.
# --hints--
-You should call `.slice()` on the `array` parameter.
+Dovresti chiamare `.slice()` sul parametro `array`.
```js
assert.match(getMedian.toString(), /array\.slice\(\)/);
```
-Your `.sort()` call should be chained to the `.slice()` call.
+La chiamata `.sort()` dovrebbe essere concatenata alla chiamata `.slice()`.
```js
assert.match(getMedian.toString(), /array\.slice\(\)\.sort\(/);
```
-You should not modify the `.sort()` method callback.
+Non dovresti modificare la funzione callback di `.sort()`.
```js
assert.match(getMedian.toString(), /array\.slice\(\)\.sort\(function\s*\(\s*a\s*,\s*b\s*\)\s*\{\s*(return)?\s*a\s*\-\s*b/)
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/5ddb965c65d27e1512d44d9a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/5ddb965c65d27e1512d44d9a.md
index c3def32154d..ddb5d771f60 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/5ddb965c65d27e1512d44d9a.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/5ddb965c65d27e1512d44d9a.md
@@ -7,19 +7,19 @@ dashedName: step-1
# --description--
-You have been provided with boilerplate CSS and HTML. However, you need to build your calorie counter form.
+Ti sono stati forniti i boilerplate CSS e HTML. Tuttavia, devi costruire il modulo del contatore di calorie.
-Feel free to explore the HTML and CSS, then add a `form` element and give it an `id` set to `calorie-counter`.
+Esplora HTML e CSS, poi aggiungi un elemento `form` e dagli un `id` impostato su `calorie-counter`.
# --hints--
-You should have a `form` element.
+Dovresti avere un elemento `form`.
```js
assert.exists(document.querySelector('form'));
```
-Your `form` element should have an `id` attribute set to `calorie-counter`.
+L'elemento `form` dovrebbe avere un attributo `id` impostato su `calorie-counter`.
```js
assert.equal(document.querySelector('form')?.id, 'calorie-counter');
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b606f09a14cc1781aea1fb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b606f09a14cc1781aea1fb.md
index e938bc8c2e3..560ce3e394a 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b606f09a14cc1781aea1fb.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b606f09a14cc1781aea1fb.md
@@ -7,41 +7,41 @@ dashedName: step-2
# --description--
-Create a `label` element, give it a `for` attribute set to `budget` and the text `Budget`, then create an `input` element with the `id` set to `budget`.
+Crea un elemento `label`, dagli un attributo `for` impostato su `budget` e il testo `Budget`, poi crea un elemento `input` con l'`id` impostato su `budget`.
# --hints--
-You should create a `label` element in your `form`.
+Dovresti creare un elemento `label` nel `form`.
```js
assert.exists(document.querySelector('form label'));
```
-Your `label` element should have a `for` attribute set to `budget`.
+L'elemento `label` dovrebbe avere un attributo `for` impostato su `budget`.
```js
assert.equal(document.querySelector('form label')?.getAttribute('for'), 'budget');
```
-Your `label` element should have the text `Budget`.
+L'elemento `label` dovrebbe avere il testo `Budget`.
```js
assert.equal(document.querySelector('form label')?.innerText, 'Budget');
```
-You should create an `input` element within your `form`.
+Dovresti creare un elemento `input` all'interno del `form`.
```js
assert.exists(document.querySelector('form input'));
```
-Your `input` element should come after your `label` element.
+L'elemento `input` dovrebbe trovarsi dopo l'elemento `label`.
```js
assert.equal(document.querySelector('form input')?.previousElementSibling?.tagName, "LABEL");
```
-Your `input` element should have an `id` set to `budget`.
+L'elemento `input` dovrebbe avere un `id` impostato su `budget`.
```js
assert.equal(document.querySelector('form input')?.id, "budget");
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6075a62883218d282504c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6075a62883218d282504c.md
index fcabad47a30..16ab1509c85 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6075a62883218d282504c.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6075a62883218d282504c.md
@@ -7,25 +7,25 @@ dashedName: step-3
# --description--
-Your `input` element needs some additional attributes. Give it a `type` set to `number` to only allow numeric inputs, a `min` attribute set to `0` to only allow positive numbers, and a `placeholder` set to `Daily calorie budget`.
+L'elemento `input` ha bisogno di qualche altro attributo. Dagli un `type` impostato su `number` per consentire solo input numerici, un attributo `min` impostato su `0` per consentire solo numeri positivi, e un `placeholder` impostato su `Daily calorie budget`.
-Finally, mark the `input` element as `required`.
+Infine, contrassegna l'elemento `input` come `required`.
# --hints--
-Your `input` element should have a `type` attribute set to `number`.
+L'elemento `input` dovrebbe avere un attributo `type` impostato su `number`.
```js
assert.equal(document.querySelector('form input').type, 'number');
```
-Your `input` element should have a `min` attribute set to `0`.
+L'elemento `input` dovrebbe avere un attributo `min` impostato su `0`.
```js
assert.equal(document.querySelector('form input').min, '0');
```
-Your `input` element should have a `placeholder` attribute set to `Daily calorie budget`.
+L'elemento `input` dovrebbe avere un attributo `placeholder` impostato su `Daily calorie budget`.
```js
assert.equal(document.querySelector('form input').placeholder, 'Daily calorie budget');
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b607af6fcdb119aae9b16a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b607af6fcdb119aae9b16a.md
index 5079bde79a8..77560fb2c27 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b607af6fcdb119aae9b16a.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b607af6fcdb119aae9b16a.md
@@ -7,55 +7,55 @@ dashedName: step-4
# --description--
-Create a `fieldset` element with the `id` set to `breakfast`.
+Crea un elemento `fieldset` con l'`id` impostato su `breakfast`.
-Within that element, create a `legend` with the text `Breakfast`, and an empty `div` with the `class` set to `input-container`.
+Al suo interno, crea un elemento `legend` con il testo `Breakfast` e un `div` vuoto con l'attributo `class` impostato su `input-container`.
# --hints--
-You should create a `fieldset` element in your `form`.
+Dovresti creare un elemento `fieldset` all'interno del `form`.
```js
assert.exists(document.querySelector('form fieldset'));
```
-Your `fieldset` element should come after your `input` element.
+L'elemento `fieldset` dovrebbe trovarsi dopo l'elemento `input`.
```js
assert.equal(document.querySelector('form fieldset')?.previousElementSibling?.tagName, "INPUT");
```
-Your `fieldset` element should have an `id` set to `breakfast`.
+L'elemento `fieldset` dovrebbe avere un `id` impostato su `breakfast`.
```js
assert.equal(document.querySelector('form fieldset')?.id, "breakfast");
```
-You should create a `legend` element within your `fieldset`.
+Dovresti creare un elemento `legend` all'interno del `fieldset`.
```js
assert.exists(document.querySelector('form fieldset legend'));
```
-Your `legend` element should have the text `Breakfast`.
+L'elemento `legend` dovrebbe avere il testo `Breakfast`.
```js
assert.equal(document.querySelector('form fieldset legend')?.innerText, "Breakfast");
```
-You should create a `div` element within your `fieldset`.
+Dovresti creare un elemento `div` all'interno del `fieldset`.
```js
assert.exists(document.querySelector('form fieldset div'));
```
-Your `div` element should come after your `legend` element.
+L'elemento `div` dovrebbe trovarsi dopo l'elemento `legend`.
```js
assert.equal(document.querySelector('form fieldset div')?.previousElementSibling?.tagName, "LEGEND");
```
-Your `div` element should have a `class` set to `input-container`.
+L'elemento `div` dovrebbe avere l'attributo `class` impostato su `input-container`.
```js
assert.equal(document.querySelector('form fieldset div')?.className, "input-container");
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60821c855d01b1eda3c0b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60821c855d01b1eda3c0b.md
index 7de68f5215c..1b6c98351b4 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60821c855d01b1eda3c0b.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60821c855d01b1eda3c0b.md
@@ -7,47 +7,47 @@ dashedName: step-5
# --description--
-Now create a `fieldset` with an `id` set to `lunch`, and a corresponding `legend` and `div` element.
+Ora crea un `fieldset` con un `id` impostato su `lunch` e degli elementi `legend` e `div` corrispondenti.
# --hints--
-You should create a second `fieldset` element in your `form`.
+Dovresti creare un secondo elemento `fieldset` all'interno del `form`.
```js
assert.exists(document.querySelectorAll('form fieldset')[1]);
```
-Your second `fieldset` element should come after your first `fieldset` element.
+Il secondo elemento `fieldset` dovrebbe trovarsi dopo il primo elemento `fieldset`.
```js
assert.equal(document.querySelectorAll('form fieldset')[1]?.previousElementSibling?.tagName, "FIELDSET");
```
-Your second `fieldset` element should have an `id` set to `lunch`.
+Il secondo elemento `fieldset` dovrebbe avere un `id` impostato su `lunch`.
```js
assert.equal(document.querySelectorAll('form fieldset')[1]?.id, "lunch");
```
-Your second `fieldset` element should contain a `legend` element.
+Il secondo elemento `fieldset` dovrebbe contenere un elemento `legend`.
```js
assert.exists(document.querySelectorAll('form fieldset')[1]?.querySelector('legend'));
```
-Your new `legend` element should have the text `Lunch`.
+Il nuovo elemento `legend` dovrebbe avere il testo `Lunch`.
```js
assert.equal(document.querySelectorAll('form fieldset')[1]?.querySelector('legend')?.innerText, "Lunch");
```
-Your second `fieldset` element should contain a `div` element.
+Il secondo elemento `fieldset` dovrebbe contenere un elemento `div`.
```js
assert.exists(document.querySelectorAll('form fieldset')[1]?.querySelector('div'));
```
-Your new `div` element should have a `class` set to `input-container`.
+Il nuovo elemento `div` dovrebbe avere l'attributo `class` impostato su `input-container`.
```js
assert.equal(document.querySelectorAll('form fieldset')[1]?.querySelector('div')?.className, "input-container");
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6088bb56e2d1cac364043.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6088bb56e2d1cac364043.md
index f7c617f998e..a44075e9423 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6088bb56e2d1cac364043.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6088bb56e2d1cac364043.md
@@ -7,47 +7,47 @@ dashedName: step-6
# --description--
-Continuing the pattern, create a `fieldset` for `dinner` with the same nested elements.
+Continuando il modello, crea un `fieldset` per `dinner` con gli stessi elementi annidati.
# --hints--
-You should create a third `fieldset` element in your `form`.
+Dovresti creare un terzo elemento `fieldset` all'interno del `form`.
```js
assert.exists(document.querySelectorAll('form fieldset')[2]);
```
-Your third `fieldset` element should come after your second `fieldset` element.
+Il terzo elemento `fieldset` dovrebbe trovarsi dopo il secondo elemento `fieldset`.
```js
assert.equal(document.querySelectorAll('form fieldset')[2]?.previousElementSibling?.tagName, "FIELDSET");
```
-Your third `fieldset` element should have an `id` set to `dinner`.
+Il terzo elemento `fieldset` dovrebbe avere un `id` impostato su `dinner`.
```js
assert.equal(document.querySelectorAll('form fieldset')[2]?.id, "dinner");
```
-Your third `fieldset` element should contain a `legend` element.
+Il terzo elemento `fieldset` dovrebbe contenere un elemento `legend`.
```js
assert.exists(document.querySelectorAll('form fieldset')[2]?.querySelector('legend'));
```
-Your new `legend` element should have the text `Dinner`.
+Il nuovo elemento `legend` dovrebbe avere il testo `Dinner`.
```js
assert.equal(document.querySelectorAll('form fieldset')[2]?.querySelector('legend')?.innerText, "Dinner");
```
-Your third `fieldset` element should contain a `div` element.
+Il terzo elemento `fieldset` dovrebbe contenere un elemento `div`.
```js
assert.exists(document.querySelectorAll('form fieldset')[2]?.querySelector('div'));
```
-Your new `div` element should have a `class` set to `input-container`.
+Il nuovo elemento `div` dovrebbe avere l'attributo `class` impostato su `input-container`.
```js
assert.equal(document.querySelectorAll('form fieldset')[2]?.querySelector('div')?.className, "input-container");
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b608ebf40c871d960fc004.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b608ebf40c871d960fc004.md
index 911126b33e4..ea1872d7ab7 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b608ebf40c871d960fc004.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b608ebf40c871d960fc004.md
@@ -7,89 +7,89 @@ dashedName: step-7
# --description--
-You need two more of these `fieldset` code blocks – one for `snacks` and one for `exercise`.
+Hai bisogno di altri due blocchi di codice `fieldset` – uno per `snacks` e uno per `exercise`.
# --hints--
-You should create a fourth `fieldset` element in your `form`.
+Dovresti creare un quarto elemento `fieldset` all'interno del `form`.
```js
assert.exists(document.querySelectorAll('form fieldset')[3]);
```
-Your fourth `fieldset` element should come after your third `fieldset` element.
+Il quarto elemento `fieldset` dovrebbe trovarsi dopo il terzo elemento `fieldset`.
```js
assert.equal(document.querySelectorAll('form fieldset')[3]?.previousElementSibling?.tagName, "FIELDSET");
```
-Your fourth `fieldset` element should have an `id` set to `snacks`.
+Il quarto elemento `fieldset` dovrebbe avere un `id` impostato su `snacks`.
```js
assert.equal(document.querySelectorAll('form fieldset')[3]?.id, "snacks");
```
-Your fourth `fieldset` element should contain a `legend` element.
+Il quarto elemento `fieldset` dovrebbe contenere un elemento `legend`.
```js
assert.exists(document.querySelectorAll('form fieldset')[3]?.querySelector('legend'));
```
-Your fourth `legend` element should have the text `Snacks`.
+Il quarto elemento `legend` dovrebbe avere il testo `Snacks`.
```js
assert.equal(document.querySelectorAll('form fieldset')[3]?.querySelector('legend')?.innerText, "Snacks");
```
-Your fourth `fieldset` element should contain a `div` element.
+Il quarto elemento `fieldset` dovrebbe contenere un elemento `div`.
```js
assert.exists(document.querySelectorAll('form fieldset')[3]?.querySelector('div'));
```
-Your fifth `div` element should have a `class` set to `input-container`.
+Il quinto elemento `div` dovrebbe avere l'attributo `class` impostato su `input-container`.
```js
assert.equal(document.querySelectorAll('form fieldset')[3]?.querySelector('div')?.className, "input-container");
```
-You should create a fifth `fieldset` element in your `form`.
+Dovresti creare un quinto elemento `fieldset` all'interno del `form`.
```js
assert.exists(document.querySelectorAll('form fieldset')[4]);
```
-Your fifth `fieldset` element should come after your fourth `fieldset` element.
+Il quinto elemento `fieldset` dovrebbe trovarsi dopo il quarto elemento `fieldset`.
```js
assert.equal(document.querySelectorAll('form fieldset')[4]?.previousElementSibling?.tagName, "FIELDSET");
```
-Your fifth `fieldset` element should have an `id` set to `exercise`.
+Il quinto elemento `fieldset` dovrebbe avere un `id` impostato su `exercise`.
```js
assert.equal(document.querySelectorAll('form fieldset')[4]?.id, "exercise");
```
-Your fifth `fieldset` element should contain a `legend` element.
+Il quinto elemento `fieldset` dovrebbe contenere un elemento `legend`.
```js
assert.exists(document.querySelectorAll('form fieldset')[4]?.querySelector('legend'));
```
-Your fifth `legend` element should have the text `Exercise`.
+Il quinto elemento `legend` dovrebbe avere il testo `Exercise`.
```js
assert.equal(document.querySelectorAll('form fieldset')[4]?.querySelector('legend')?.innerText, "Exercise");
```
-Your fifth `fieldset` element should contain a `div` element.
+Il quinto elemento `fieldset` dovrebbe contenere un elemento `div`.
```js
assert.exists(document.querySelectorAll('form fieldset')[4]?.querySelector('div'));
```
-Your fifth `div` element should have a `class` set to `input-container`.
+Il quinto elemento `div` dovrebbe avere l'attributo `class` impostato su `input-container`.
```js
assert.equal(document.querySelectorAll('form fieldset')[4]?.querySelector('div')?.className, "input-container");
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60a140bf5a321d50a7315.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60a140bf5a321d50a7315.md
index 068bea72dfc..91d43d17d83 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60a140bf5a321d50a7315.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60a140bf5a321d50a7315.md
@@ -7,30 +7,30 @@ dashedName: step-8
# --description--
-Create a `div` and give it a `class` set to `controls`. Nest a `span` element within that `div`.
+Crea un `div` e dagli una `class` impostata su `controls`. Annida un elemento `span` all'interno di questo `div`.
# --hints--
-You should create a new `div` element in your `form`.
+Dovresti creare un nuovo elemento `div` nel `form`.
```js
assert.exists(document.querySelector('form > div'));
```
-Your `div` element should come after your `fieldset` elements.
+L'elemento `div` dovrebbe trovarsi dopo gli elementi `fieldset`.
```js
assert.equal(document.querySelector('form > div')?.previousElementSibling?.tagName, "FIELDSET");
assert.notExists(document.querySelector('form > div')?.nextElementSibling);
```
-Your `div` element should have a `class` attribute set to `controls`.
+L'elemento `div` dovrebbe avere l'attributo `class` con il valore `controls`.
```js
assert.equal(document.querySelector('form > div')?.className, "controls");
```
-You should nest a `span` element within your `div`.
+Dovresti annidare un elemento `span` all'interno del `div`.
```js
assert.exists(document.querySelector('form > div > span'));
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60aaaa65f8922bfce6b7e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60aaaa65f8922bfce6b7e.md
index c9723d26fcb..4ec8cd8b465 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60aaaa65f8922bfce6b7e.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60aaaa65f8922bfce6b7e.md
@@ -7,73 +7,73 @@ dashedName: step-9
# --description--
-In your `span` element, create a `label` element for an `entry-dropdown` and give it the text `Add food or exercise:`. Then create a `select` element with the `id` set to `entry-dropdown` and a `name` set to `options`. Below that, add a `button` element with the `id` set to `add-entry` and the text `Add Entry`.
+All'interno dell'elemento `span` crea un elemento `label` per un `entry-dropdown` e dagli il testo `Add food or exercise:`. Quindi crea un elemento `select` con l'`id` impostato su `entry-dropdown` e un `name` impostato su `options`. Sotto questo, aggiungi un elemento `button` con l'`id` impostato su `add-entry` e il testo `Add Entry`.
-Give your `button` element a `type` attribute set to `button` to prevent automatic form submission.
+Dai all'elemento `button` un attributo `type` impostato su `button` per evitare l'invio automatico del modulo.
# --hints--
-You should add a `label` element to your `span` element.
+Dovresti aggiungere un elemento `label` all'elemento `span`.
```js
assert.exists(document.querySelector('.controls > span > label'));
```
-Your new `label` element should have a `for` attribute set to `entry-dropdown`.
+Il nuovo elemento `label` dovrebbe avere un attributo `for` impostato su `entry-dropdown`.
```js
assert.equal(document.querySelector('.controls > span > label')?.getAttribute('for'), 'entry-dropdown');
```
-Your new `label` element should have the text `Add food or exercise:`.
+Il nuovo elemento `label` dovrebbe avere il testo `Add food or exercise:`.
```js
assert.equal(document.querySelector('.controls > span > label')?.innerText, 'Add food or exercise:');
```
-You should add a `select` element to your `span` element.
+Dovresti aggiungere un elemento `select` all'elemento `span`.
```js
assert.exists(document.querySelector('.controls > span > select'));
```
-Your `select` element should come after your `label` element.
+L'elemento `select` dovrebbe trovarsi dopo l'elemento `label`.
```js
assert(document.querySelector('.controls > span > select')?.previousElementSibling?.tagName === 'LABEL');
```
-Your new `select` element should have an `id` attribute set to `entry-dropdown`.
+Il nuovo elemento `select` dovrebbe avere un attributo `id` impostato su `entry-dropdown`.
```js
assert.equal(document.querySelector('.controls > span > select')?.getAttribute('id'), 'entry-dropdown');
```
-Your new `select` element should have a `name` attribute set to `options`.
+Il nuovo elemento `select` dovrebbe avere un attributo `name` impostato su `options`.
```js
assert.equal(document.querySelector('.controls > span > select')?.getAttribute('name'), 'options');
```
-You should add a `button` element to your `span` element.
+Dovresti aggiungere un elemento `button` all'elemento `span`.
```js
assert.exists(document.querySelector('.controls > span > button'));
```
-Your `button` element should come after your `select` element.
+L'elemento `button` dovrebbe trovarsi dopo l'elemento `select`.
```js
assert(document.querySelector('.controls > span > button')?.previousElementSibling?.tagName === 'SELECT');
```
-Your new `button` element should have an `id` attribute set to `add-entry`.
+Il nuovo elemento `button` dovrebbe avere un attributo `id` impostato su `add-entry`.
```js
assert.equal(document.querySelector('.controls > span > button')?.getAttribute('id'), 'add-entry');
```
-Your new `button` element should have the text `Add Entry`.
+Il nuovo elemento `button` dovrebbe avere il testo `Add Entry`.
```js
assert.equal(document.querySelector('.controls > span > button')?.innerText, 'Add Entry');
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60af1a0b9f7238a9dd294.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60af1a0b9f7238a9dd294.md
index 27f69a473d9..5d986d972ac 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60af1a0b9f7238a9dd294.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60af1a0b9f7238a9dd294.md
@@ -7,79 +7,79 @@ dashedName: step-10
# --description--
-Your select menu needs options for each of the food and exercise `fieldset` elements you created in the previous steps. Use the `option` element to create a new option for each `fieldset`. The `value` attribute of each option should be the `id` of the `fieldset`, and the text of each option should be the text of the `legend`.
+Il menu di selezione ha bisogno di opzioni per ciascuno degli elementi `fieldset` di cibi ed esercizi che hai creato nei passaggi precedenti. Usa l'elemento `option` per creare una nuova opzione per ogni `fieldset`. L'attributo `value` di ogni opzione dovrebbe essere l'`id` del `fieldset` e il testo di ogni opzione dovrebbe essere il testo di `legend`.
-Set the `Breakfast` option as the `selected` option.
+Imposta l'opzione `Breakfast` come opzione `selected`.
# --hints--
-You should create five `option` elements within your `select` element.
+Dovresti creare cinque elementi `option` all'interno dell'elemento `select`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.length, 5);
```
-Your first `option` should have the text `Breakfast`.
+Il primo `option` dovrebbe avere il testo `Breakfast`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.[0]?.textContent, 'Breakfast');
```
-Your first `option` should have the `value` attribute set to `breakfast`.
+Il primo `option` dovrebbe avere l'attributo `value` impostato su `breakfast`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.[0]?.value, 'breakfast');
```
-Your second `option` should have the text `Lunch`.
+Il secondo `option` dovrebbe avere il testo `Lunch`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.[1]?.textContent, 'Lunch');
```
-Your second `option` should have the `value` attribute set to `lunch`.
+Il secondo `option` dovrebbe avere l'attributo `value` impostato su `lunch`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.[1]?.value, 'lunch');
```
-Your third `option` should have the text `Dinner`.
+Il terzo `option` dovrebbe avere il testo `Dinner`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.[2]?.textContent, 'Dinner');
```
-Your third `option` should have the `value` attribute set to `dinner`.
+Il terzo `option` dovrebbe avere l'attributo `value` impostato su `dinner`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.[2]?.value, 'dinner');
```
-Your fourth `option` should have the text `Snacks`.
+Il quarto `option` dovrebbe avere il testo `Snacks`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.[3]?.textContent, 'Snacks');
```
-Your fourth `option` should have the `value` attribute set to `snacks`.
+Il quarto `option` dovrebbe avere l'attributo `value` impostato su `snacks`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.[3]?.value, 'snacks');
```
-Your fifth `option` should have the text `Exercise`.
+Il quinto `option` dovrebbe avere il testo `Exercise`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.[4]?.textContent, 'Exercise');
```
-Your fifth `option` should have the `value` attribute set to `exercise`.
+Il quinto `option` dovrebbe avere l'attributo `value` impostato su `exercise`.
```js
assert.equal(document.querySelectorAll('.controls select option')?.[4]?.value, 'exercise');
```
-Your first `option` should be selected by default.
+Il primo `option` dovrebbe essere selezionato di default.
```js
assert.isTrue(document.querySelectorAll('.controls select option')?.[0]?.getAttributeNames()?.includes('selected'));
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60c09c5039f25a3b2dda9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60c09c5039f25a3b2dda9.md
index 4e28d650816..ea067e86deb 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60c09c5039f25a3b2dda9.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60c09c5039f25a3b2dda9.md
@@ -7,61 +7,61 @@ dashedName: step-11
# --description--
-Create another `div` element. Within it, nest a `button` to `submit` the form, with an `id` set to `calculate-calories`. This button should have the text `Calculate Remaining Calories`.
+Crea un altro elemento `div`. Al suo interno, annida un `button` per inviare (`submit`) il modulo, con un `id` impostato su `calculate-calories`. Questo pulsante dovrebbe avere il testo `Calculate Remaining Calories`.
-Then add a `button` with the `id` set to `clear` to clear the form (don't forget to give it a `type` attribute that prevents it from submitting the form). This button needs the text `Clear`.
+Quindi aggiungi un `button` con l'`id` impostato su `clear` per svuotare il modulo (non dimenticare di dargli un attributo `type` che eviti di inviare il modulo). Questo pulsante ha bisogno del testo `Clear`.
# --hints--
-You should create a second `div` element.
+Dovresti creare un secondo elemento `div`.
```js
assert.equal(document.querySelectorAll('form > div')?.length, 2);
```
-Your new `div` element should have a `button` element.
+Il nuovo elemento `div` dovrebbe avere un elemento `button`.
```js
assert.exists(document.querySelectorAll('form > div')?.[1]?.querySelector('button'));
```
-Your `button` element should have a `type` attribute set to `submit`.
+L'elemento `button` dovrebbe avere un attributo `type` impostato su `submit`.
```js
assert.equal(document.querySelectorAll('form > div')?.[1]?.querySelector('button')?.getAttribute('type'), 'submit');
```
-Your `button` element should have an `id` attribute set to `calculate-calories`.
+L'elemento `button` dovrebbe avere un attributo `id` impostato su `calculate-calories`.
```js
assert.equal(document.querySelectorAll('form > div')?.[1]?.querySelector('button')?.getAttribute('id'), 'calculate-calories');
```
-Your `button` element should have the text `Calculate Remaining Calories`.
+L'elemento `button` dovrebbe avere il testo `Calculate Remaining Calories`.
```js
assert.equal(document.querySelectorAll('form > div')?.[1]?.querySelector('button')?.innerText, 'Calculate Remaining Calories');
```
-Your `div` element should have a second `button` element.
+L'elemento `div` dovrebbe avere un secondo elemento `button`.
```js
assert.exists(document.querySelectorAll('form > div')?.[1]?.querySelectorAll('button')?.[1]);
```
-Your second `button` element should have a `type` attribute set to `button`.
+Il secondo elemento `button` dovrebbe avere un attributo `type` impostato su `button`.
```js
assert.equal(document.querySelectorAll('form > div')?.[1]?.querySelectorAll('button')?.[1]?.getAttribute('type'), 'button');
```
-Your second `button` element should have an `id` attribute set to `clear`.
+Il secondo elemento `button` dovrebbe avere un attributo `id` impostato su `clear`.
```js
assert.equal(document.querySelectorAll('form > div')?.[1]?.querySelectorAll('button')?.[1]?.getAttribute('id'), 'clear');
```
-Your second `button` element should have the text `Clear`.
+Il secondo elemento `button` dovrebbe avere il testo `Clear`.
```js
assert.equal(document.querySelectorAll('form > div')?.[1]?.querySelectorAll('button')?.[1]?.innerText, 'Clear');
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60ca38c897f2721b27959.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60ca38c897f2721b27959.md
index aaf24c8d8cb..f5732ad673b 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60ca38c897f2721b27959.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60ca38c897f2721b27959.md
@@ -7,30 +7,30 @@ dashedName: step-12
# --description--
-Your form needs somewhere to display the results. Add an empty `div` element and give it an `id` of `output` and the `class` values of `output` and `hide`.
+Il modulo ha bisogno di un posto dove mostrare i risultati. Aggiungi un elemento `div` vuoto e dagli un `id` con il valore `output` e una `class` con i valori `output` e `hide`.
# --hints--
-You should add a `div` element after your `form`.
+Dovresti aggiungere un elemento `div` dopo il `form`.
```js
assert.exists(document.querySelector('.container > div'));
```
-Your new `div` element should have an `id` set to `output`.
+Il nuovo elemento `div` dovrebbe avere un `id` impostato su `output`.
```js
assert.equal(document.querySelector('.container > div')?.id, 'output');
```
-Your new `div` element should have the `class` values of `output` and `hide`.
+Il nuovo elemento `div` dovrebbe avere una `class` con i valori `output` e `hide`.
```js
assert.include(document.querySelector('.container > div')?.className.split(/\s+/), 'output');
assert.include(document.querySelector('.container > div')?.className.split(/\s+/), 'hide');
```
-Your new `div` should be empty.
+Il nuovo `div` dovrebbe essere vuoto.
```js
assert.equal(document.querySelector('.container > div')?.innerHTML, '');
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60cfaca25bb27edd40f62.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60cfaca25bb27edd40f62.md
index 17934b0039d..1ca6981282e 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60cfaca25bb27edd40f62.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60cfaca25bb27edd40f62.md
@@ -7,17 +7,17 @@ dashedName: step-13
# --description--
-Finally, you need to link your JavaScript file to your HTML. Create a `script` element to do so.
+Infine, devi collegare il file JavaScript al tuo HTML. Crea un elemento `script` per questo scopo.
# --hints--
-You should have a `script` element.
+Dovresti avere un elemento `script`.
```js
assert.isAtLeast(document.querySelectorAll('script')?.length, 1);
```
-Your `script` element should have the `src` set to `./script.js`.
+L'elemento `script` dovrebbe avere un `src` impostato su `./script.js`.
```js
assert.match(code, /script\s*?src\s*?=\s*?('|")(\.\/)?script\.js\1/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60d3c5048302906962231.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60d3c5048302906962231.md
index de3870b44ad..482800e0adb 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60d3c5048302906962231.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b60d3c5048302906962231.md
@@ -7,23 +7,23 @@ dashedName: step-14
# --description--
-It is time to start writing the script that makes your form work. Begin by getting the `form` element (using the `id`) and storing it in a variable called `calorieCounter`.
+È tempo di iniziare a scrivere lo script che fa funzionare il modulo. Inizia ottenendo l'elemento `form` (usando l'`id`) e memorizzandolo in una variabile chiamata `calorieCounter`.
# --hints--
-You should create a variable called `calorieCounter`.
+Dovresti creare una variabile chiamata `calorieCounter`.
```js
assert.isDefined(calorieCounter);
```
-You should use `document.getElementById()` to get the `#calorie-counter` element.
+Dovresti usare `document.getElementById()` per selezionare l'elemento `#calorie-counter`.
```js
assert.match(code, /document\.getElementById\(\s*('|")calorie-counter\1\s*\)/g);
```
-You should store the `#calorie-counter` element in a variable called `calorieCounter`.
+Dovresti memorizzare l'elemento `#calorie-counter` in una variabile chiamata `calorieCounter`.
```js
assert.equal(calorieCounter, document.getElementById('calorie-counter'));
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b613f367584d2a5d041b7d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b613f367584d2a5d041b7d.md
index 44e1c274573..7b5aec4b574 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b613f367584d2a5d041b7d.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b613f367584d2a5d041b7d.md
@@ -7,41 +7,41 @@ dashedName: step-15
# --description--
-Get your `#budget` element and assign it to `budgetNumberInput`, and your `#entry-dropdown` element and assign it to `entryDropdown`.
+Seleziona l'elemento `#budget` e assegnalo a `budgetNumberInput`, e l'elemento `#entry-dropdown` e assegnalo a `entryDropdown`.
# --hints--
-You should declare a variable called `budgetNumberInput`.
+Dovresti dichiarare una variabile chiamata `budgetNumberInput`.
```js
assert.isDefined(budgetNumberInput);
```
-You should use `document.getElementById()` to get the `#budget` element.
+Dovresti usare `document.getElementById()` per selezionare l'elemento `#budget`.
```js
assert.match(code, /document\.getElementById\(\s*('|")budget\1\s*\)/g);
```
-You should store the `#budget` element in a variable called `budgetNumberInput`.
+Dovresti memorizzare l'elemento `#budget` in una variabile chiamata `budgetNumberInput`.
```js
assert.equal(budgetNumberInput, document.getElementById('budget'));
```
-You should declare a variable called `entryDropdown`.
+Dovresti dichiarare una variabile chiamata `entryDropdown`.
```js
assert.isDefined(entryDropdown);
```
-You should use `document.getElementById()` to get the `#entry-dropdown` element.
+Dovresti usare `document.getElementById()` per selezionare l'elemento `#entry-dropdown`.
```js
assert.match(code, /document\.getElementById\(\s*('|")entry-dropdown\1\s*\)/g);
```
-You should store the `#entry-dropdown` element in a variable called `entryDropdown`.
+Dovresti memorizzare l'elemento `#entry-dropdown` in una variabile chiamata `entryDropdown`.
```js
assert.equal(entryDropdown, document.getElementById('entry-dropdown'));
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61490e633a22b4593e62f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61490e633a22b4593e62f.md
index 6cbbeb5ab4a..54c39638a30 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61490e633a22b4593e62f.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61490e633a22b4593e62f.md
@@ -7,59 +7,59 @@ dashedName: step-16
# --description--
-Following the same pattern, assign your `#add-entry` element to `addEntryButton`, your `#clear` element to `clearButton`, and your `#output` element to `output`.
+Seguendo lo stesso modello, assegna l'elemento `#add-entry` a `addEntryButton`, l'elemento `#clear` a `clearButton`, e l'elemento `#output` a `output`.
# --hints--
-You should declare a variable called `addEntryButton`.
+Dovresti dichiarare una variabile chiamata `addEntryButton`.
```js
assert.isDefined(addEntryButton);
```
-You should use `document.getElementById()` to get the `#add-entry` element.
+Dovresti usare `document.getElementById()` per selezionare l'elemento `#add-entry`.
```js
assert.match(code, /document\.getElementById\(\s*('|")add-entry\1\s*\)/g);
```
-You should assign the `#add-entry` element to `addEntryButton`.
+Dovresti assegnare l'elemento `#add-entry` a `addEntryButton`.
```js
assert.equal(addEntryButton, document.getElementById('add-entry'));
```
-You should declare a variable called `clearButton`.
+Dovresti dichiarare una variabile chiamata `clearButton`.
```js
assert.isDefined(clearButton);
```
-You should use `document.getElementById()` to get the `#clear` element.
+Dovresti usare `document.getElementById()` per selezionare l'elemento `#clear`.
```js
assert.match(code, /document\.getElementById\(\s*('|")clear\1\s*\)/g);
```
-You should assign the `#clear` element to `clearButton`.
+Dovresti assegnare l'elemento `#clear` a `clearButton`.
```js
assert.equal(clearButton, document.getElementById('clear'));
```
-You should declare a variable called `output`.
+Dovresti dichiarare una variabile chiamata `output`.
```js
assert.isDefined(output);
```
-You should use `document.getElementById()` to get the `#output` element.
+Dovresti usare `document.getElementById()` per selezionare l'elemento `#output`.
```js
assert.match(code, /document\.getElementById\(\s*('|")output\1\s*\)/g);
```
-You should assign the `#output` element to `output`.
+Dovresti assegnare l'elemento `#output` a `output`.
```js
assert.equal(output, document.getElementById("output"));
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b614e6a1f7fe2cef6312dc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b614e6a1f7fe2cef6312dc.md
index 99c1985862c..918bb045bd6 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b614e6a1f7fe2cef6312dc.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b614e6a1f7fe2cef6312dc.md
@@ -7,23 +7,23 @@ dashedName: step-17
# --description--
-Declare an `isError` variable and set it to `false`, but use `let` so you can reassign it later.
+Dichiara una variabile `isError` e impostala su `false`, ma usa `let` per poterla riassegnare in seguito.
# --hints--
-You should declare an `isError` variable.
+Dovresti dichiarare una variabile `isError`.
```js
assert.isDefined(isError);
```
-Your `isError` variable should be set to `false`.
+La variabile `isError` dovrebbe essere impostata su `false`.
```js
assert.isFalse(isError);
```
-You should use `let` to declare your `isError` variable.
+Dovresti usare `let` per dichiarare la variabile `isError`.
```js
assert.match(code, /let\s+isError\s*=\s*false/g);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md
index 436b65b80d6..30a863f413e 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md
@@ -7,31 +7,31 @@ dashedName: step-18
# --description--
-Even though you set an `input` element to be a number, JavaScript receives a string value. You need to write a function to clean the string value and ensure you have a number.
+Anche se imposti un elemento `input` in modo che sia un numero, JavaScript riceve una stringa come valore. Devi scrivere una funzione per pulire il valore della stringa e assicurarti di avere un numero.
-Start by declaring a `cleanInputString` function that takes a `str` argument.
+Inizia dichiarando una funzione `cleanInputString` che prende un argomento `str`.
# --hints--
-You should declare a `cleanInputString` variable.
+Dovresti dichiarare una variabile `cleanInputString`.
```js
assert.isDefined(cleanInputString);
```
-Your `cleanInputString` variable should be a function.
+La variabile `cleanInputString` dovrebbe essere una funzione.
```js
assert.isFunction(cleanInputString);
```
-Your `cleanInputString` function should take a `str` argument.
+La funzione `cleanInputString` dovrebbe prendere un argomento `str`.
```js
assert.match(cleanInputString?.toString(), /\(str\)/);
```
-`cleanInputString` should be an empty function.
+`cleanInputString` dovrebbe essere una funzione vuota.
```js
assert.match(cleanInputString?.toString(), /\{\s*\}/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md
index b7de4018e24..b08ad4ab7fc 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md
@@ -7,19 +7,19 @@ dashedName: step-19
# --description--
-You need to split your `str` into individual characters. Remember that strings have a `.split()` method, and if you pass an empty string it will split on every character.
+Devi dividere `str` nei singoli caratteri. Ricorda che le stringhe hanno un metodo `.split()` e se gli passi una stringa vuota dividerà ogni carattere.
-Declare a `strArray` variable and assign it that split value.
+Dichiara una variabile `strArray` e assegnale il valore di split.
# --hints--
-Your `cleanInputString` function should declare a `strArray` variable.
+La funzione `cleanInputString` dovrebbe dichiarare una variabile `strArray`.
```js
assert.match(cleanInputString.toString(), /strArray\s*=/);
```
-Your `strArray` variable should be assigned the value of `str.split('')`.
+Alla variabile `strArray` dovrebbe essere assegnato il valore di `str.split('')`.
```js
assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md
index a0eaf81fd4e..34cb9072ad1 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md
@@ -7,17 +7,17 @@ dashedName: step-20
# --description--
-Declare a `cleanStrArray` variable and assign it an empty array. You will use this to store your valid number characters.
+Dichiara una variabile `cleanStrArray` e assegnale un array vuoto. La userai per memorizzare i caratteri numerici validi.
# --hints--
-Your `cleanInputString` should declare a variable called `cleanStrArray`.
+`cleanInputString` dovrebbe dichiarare una variabile chiamata `cleanStrArray`.
```js
assert.match(cleanInputString.toString(), /cleanStrArray\s*/g);
```
-Your `cleanStrArray` variable should be assigned an empty array.
+Alla variabile `cleanStrArray` dovrebbe essere assegnato un array vuoto.
```js
assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md
index db275c224c1..d06cf887c1d 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md
@@ -7,29 +7,29 @@ dashedName: step-21
# --description--
-Use a `for` loop to iterate through each character in your `strArray` array.
+Usa un loop `for` per iterare su ogni carattere nell'array `strArray`.
# --hints--
-Your `cleanInputString` function should have a `for` loop.
+La funzione `cleanInputString` dovrebbe avere un loop `for`.
```js
assert.match(cleanInputString.toString(), /for\s*\(/g);
```
-Your `for` loop should initialize a variable called `i` to `0`.
+Il loop `for` dovrebbe inizializzare una variabile chiamata `i` a `0`.
```js
assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g);
```
-Your `for` loop should have a condition that checks if `i` is less than the length of `strArray`.
+Il loop `for` dovrebbe avere una condizione che verifica se `i` è minore della lunghezza di `strArray`.
```js
assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g);
```
-Your `for` loop should increment `i` by `1` each time it runs. Use the increment operator for this.
+Il loop `for` dovrebbe incrementare `i` di `1` a ogni esecuzione. Usa l'operatore di incremento per questo.
```js
assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md
index a432c6687d5..e3bbac82874 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md
@@ -7,32 +7,32 @@ dashedName: step-22
# --description--
-Within your loop, you need to check if the character in `strArray` at index `i` is not `+`, `-`, or a space. If it is not, `push` it to the `cleanStrArray`.
+All'interno del loop, devi verificare se il carattere in `strArray` all'indice `i` non è `+`, `-` o uno spazio. Se non lo è, usa `push` per aggiungerlo a `cleanStrArray`.
-To check your character, see if the array `["+", "-", " "]` includes the character – you can use the `.includes()` method on the array to do this.
+Per verificare il carattere, vedi se l'array `["+", "-", " "]` lo include – puoi usare il metodo `.includes()` sull'array per questo scopo.
# --hints--
-Your `for` loop should have an `if` statement.
+Il loop `for` dovrebbe avere un'istruzione `if`.
```js
assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/);
```
-Your `for` loop should use `!["+", "-", " "].includes()`.
+Il loop `for` dovrebbe usare `!["+", "-", " "].includes()`.
```js
// the loop protection injects code so we have to look at the raw code directly
assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(!\[("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\.includes\(/);
```
-Your `for` loop should see if `strArray[i]` is found in `["+", "-", " "]`.
+Il loop `for` dovrebbe vedere se `strArray[i]` si trova in `["+", "-", " "]`.
```js
assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(!\[("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\.includes\(\s*strArray\[i\]\s*\)\)\s*\{/);
```
-Your `for` loop should `push` `strArray[i]` to `cleanStrArray`.
+Il loop `for` dovrebbe aggiungere con `push` `strArray[i]` a `cleanStrArray`.
```js
assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(!\[("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\.includes\(\s*strArray\[i\]\s*\)\)\s*\{\s*cleanStrArray\.push\(\s*strArray\[i\]\s*\)\s*\}/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf461011fca327d3b60fa8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf461011fca327d3b60fa8.md
index f74ff636c5b..11842694266 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf461011fca327d3b60fa8.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf461011fca327d3b60fa8.md
@@ -7,43 +7,43 @@ dashedName: step-23
# --description--
-While looping through the string works, creating a new array is inefficient for memory and runtime performance. Instead, you can use Regular Expressions (referred to as "regex") to match specific characters.
+Mentre iterare sulle stringhe funziona, creare un nuovo array è inefficiente per la memoria e le prestazioni di runtime. Invece, puoi usare un'espressione regolare (anche detta "regex") per indicare caratteri specifici.
-Regex in JavaScript is indicated by a pattern wrapped in forward slashes – for example:
+Una regex in JavaScript è indicata da un pattern racchiuso tra barre oblique – ad esempio:
```js
const regex = /hello/;
```
-Remove your existing code within the `cleanInputString` function. Declare a `regex` variable and assign it the value from the example above.
+Rimuovi il codice esistente all'interno della funzione `cleanInputString`. Dichiara una variabile `regex` e assegnale il valore dell'esempio qui sopra.
# --hints--
-You should remove the `cleanStrArray` variable.
+Dovresti rimuovere la variabile `cleanStrArray`.
```js
assert.notMatch(cleanInputString.toString(), /cleanStrArray/);
```
-You should remove the `strArray` variable.
+Dovresti rimuovere la variabile `strArray`.
```js
assert.notMatch(cleanInputString.toString(), /strArray/);
```
-You should not have a `for` loop.
+Non dovresti avere un loop `for`.
```js
assert.notMatch(cleanInputString.toString(), /for/);
```
-You should declare a `regex` variable.
+Dovresti dichiarare una variabile `regex`.
```js
assert.match(cleanInputString.toString(), /regex\s*=/);
```
-Your `regex` variable should be set to the regular expression `/hello/`.
+La variabile `regex` dovrebbe essere impostata sull'espressione regolare `/hello/`.
```js
assert.match(cleanInputString.toString(), /regex\s*=\s*\/hello\//);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf47fd40599f29827f484d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf47fd40599f29827f484d.md
index 0f781eb61cf..deb8ef3b3e1 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf47fd40599f29827f484d.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf47fd40599f29827f484d.md
@@ -7,13 +7,13 @@ dashedName: step-24
# --description--
-The pattern you currently have will match the exact text `hello`, which is not what you want to match. You want to look for `+`, `-`, or spaces. Replace the pattern in your `regex` variable with `\+-` to look for plus and minus characters.
+Il pattern che hai attualmente corrisponde esattamente al testo `hello`, che non è ciò che vuoi trovare. Vuoi cercare `+`, `-` o degli spazi. Sostituisci il pattern nella variabile `regex` con `\+-` per cercare i caratteri più e meno.
-Note that you need to use the `\` to escape the `+`, because a `+` has a special meaning in regular expressions.
+Nota che devi usare `\` per eseguire l'escape del `+`, perché un `+` ha un significato speciale nelle espressioni regolari.
# --hints--
-Your `regex` variable should be set to the regular expression `/\+-/`.
+La variabile `regex` dovrebbe essere impostata sull'espressione regolare `/\+-/`.
```js
assert.match(cleanInputString.toString(), /regex\s*=\s*\/\\\+-\//);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf492b6dfb292a79f0e675.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf492b6dfb292a79f0e675.md
index 25d6d2447fb..8f1b955a626 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf492b6dfb292a79f0e675.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf492b6dfb292a79f0e675.md
@@ -7,11 +7,11 @@ dashedName: step-25
# --description--
-In regex, shorthand character classes allow you to match specific characters without having to write those characters in your pattern. Shorthand character classes are preceded with a backslash (`\`). The character class `\s` will match any whitespace character. Add this to your regex pattern.
+In un'espressione regolare, le scorciatoie per le classi di caratteri ti consentono di indicare caratteri specifici senza doverli scrivere nel pattern. Le scorciatoie per le classi di caratteri sono precedute da una barra rovesciata (`\`). La classe di caratteri `\s` indica qualsiasi carattere di spazio. Aggiungila al tuo pattern regex.
# --hints--
-Your `regex` variable should be set to the regular expression `/\+-\s/`.
+La variabile `regex` dovrebbe essere impostata sull'espressione regolare `/\+-\s/`.
```js
assert.match(cleanInputString.toString(), /regex\s*=\s*\/\\\+-\\s\//)
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4bfe9de3852be51c8f86.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4bfe9de3852be51c8f86.md
index 3b18f0aac60..6deed84011e 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4bfe9de3852be51c8f86.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4bfe9de3852be51c8f86.md
@@ -7,25 +7,25 @@ dashedName: step-26
# --description--
-Your current pattern won't work just yet. `/+-\s/` looks for `+`, `-`, and a space *in order*. This would match `+- hello` but would not match `+hello`.
+Il pattern attuale non funzionerà ancora. `/+-\s/` cerca `+`, `-` e uno spazio *in ordine*. Troverebbe `+- hello` ma non `+hello`.
-To tell the pattern to match each of these characters individually, you need to turn them into a character class. This is done by wrapping the characters you want to match in brackets. For example, this pattern will match the characters `h`, `e`, `l`, or `o`:
+Per dire al pattern di trovare ognuno dei caratteri individualmente devi trasformarli in una classe di caratteri. Puoi farlo racchiudendo i caratteri desiderati tra parentesi quadre. Ad esempio, questo pattern troverà `h`, `e`, `l` o `o`:
```js
const regex = /[helo]/;
```
-Turn your `+-\s` pattern into a character class. Note that you no longer need to escape the `+` character, because you are using a character class.
+Trasforma il pattern `+-\s` in una classe di caratteri. Nota che non devi più eseguire l'escape del carattere `+` perché stai usando una classe di caratteri.
# --hints--
-Your `regex` variable should be set to the regular expression `[+-\s]`.
+La variabile `regex` dovrebbe essere impostata sull'espressione regolare `[+-\s]`.
```js
assert.match(cleanInputString.toString(), /regex\s*=\s*\/\[\\?\+-\\s\]\//)
```
-You should not escape the `+` character in your regular expression.
+Non dovresti eseguire l'escape del carattere `+` nell'espressione regolare.
```js
assert.match(cleanInputString.toString(), /regex\s*=\s*\/\[\+-\\s\]\//);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4d351e06432ce9bf3627.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4d351e06432ce9bf3627.md
index 30baf30ed58..3f6986e5d9d 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4d351e06432ce9bf3627.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4d351e06432ce9bf3627.md
@@ -7,17 +7,17 @@ dashedName: step-27
# --description--
-Regex can also take specific flags to alter the pattern matching behavior. Flags are added after the closing `/`. The `g` flag, which stands for "global", will tell the pattern to continue looking after it has found a match. Here is an example:
+Un'espressione regolare può anche prendere opzioni specifiche per modificare la corrispondenza del pattern. Le opzioni vengono aggiunte dopo la `/` di chiusura. L'opzione `g`, che sta per "globale", dice al pattern di continuare la ricerca dopo aver trovato un riscontro. Ecco un esempio:
```js
const helloRegex = /hello/g;
```
-Add the `g` flag to your regex pattern.
+Aggiungi l'opzione `g` al pattern regex.
# --hints--
-You should add the `g` flag to your `regex` value.
+Dovresti aggiungere l'opzione `g` al valore di `regex`.
```js
assert.match(cleanInputString.toString(), /regex\s*=\s*\/\[\+-\\s\]\/g/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf511b85b6082e54dc1573.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf511b85b6082e54dc1573.md
index 4b35b49f7b9..1bf8134eebd 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf511b85b6082e54dc1573.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf511b85b6082e54dc1573.md
@@ -7,35 +7,35 @@ dashedName: step-28
# --description--
-Strings have a `.replace()` method which allows you to replace characters in the string with another string. `.replace` takes two arguments. The first is the character sequence to replace – this can either be a string or a regex pattern. The second is the string to replace that sequence with. For example, this would replace all instances of `l` with `1`:
+Le stringhe hanno un metodo `.replace()` che consente di sostituire i caratteri nella stringa con un'altra stringa. `.replace` richiede due argomenti. Il primo è la sequenza di caratteri da sostituire: può essere una stringa o un pattern regex. Il secondo è la stringa con cui sostituire la sequenza. Ad esempio, questo sostituisce tutte le istanze di `l` con `1`:
```js
"hello".replace(/l/g, "1");
```
-Use your `regex` to replace all instances of `+`, `-`, and a space in `str` with an empty string. Return this value.
+Usa `regex` per sostituire tutte le istanze di `+`, `-` e un spazio in `str` con una stringa vuota. Restituisci questo valore.
# --hints--
-Your `cleanInputString` should call the `replace` method of `str`.
+`cleanInputString` dovrebbe chiamare il metodo `replace` su `str`.
```js
assert.match(cleanInputString.toString(), /str\.replace\(/);
```
-You should pass `regex` as the first argument to `replace`.
+Dovresti passare `regex` come primo argomento a `replace`.
```js
assert.match(cleanInputString.toString(), /str\.replace\(\s*regex\s*/);
```
-You should pass `""` as the second argument to `replace`.
+Dovresti passare `""` come secondo argomento a `replace`.
```js
assert.match(cleanInputString.toString(), /str\.replace\(\s*regex\s*,\s*("|')\1\s*\)/);
```
-Your `cleanInputString` function should directly return the result of your `replace` method.
+La funzione `cleanInputString` dovrebbe restituire direttamente il risultato del metodo `replace`.
```js
assert.match(cleanInputString.toString(), /return\s*str\.replace\(\s*regex\s*,\s*("|')\1\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md
index b6eef00a30b..87d957cfa63 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md
@@ -7,25 +7,25 @@ dashedName: step-29
# --description--
-In HTML, number inputs allow for exponential notation (such as `1e10`). You need to filter those out.
+In HTML, gli input numerici consentono la notazione esponenziale (come `1e10`). Devi scartare questi valori.
-Start by creating a function called `isInvalidInput` – it should take a single `str` parameter.
+Inizia creando una funzione chiamata `isInvalidInput` – dovrebbe accettare un singolo parametro `str`.
# --hints--
-You should declare an `isInvalidInput` variable.
+Dovresti dichiarare una variabile `isInvalidInput`.
```js
assert.isDefined(isInvalidInput)
```
-`isInvalidInput` should be a function.
+`isInvalidInput` dovrebbe essere una funzione.
```js
assert.isFunction(isInvalidInput)
```
-`isInvalidInput` should take a single `str` parameter.
+`isInvalidInput` dovrebbe accettre un singolo parametro `str`.
```js
assert.match(isInvalidInput?.toString(), /\(\s*str\s*\)/)
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf598a4c807930a13a1a27.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf598a4c807930a13a1a27.md
index 778a809571e..a5b043a7a80 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf598a4c807930a13a1a27.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf598a4c807930a13a1a27.md
@@ -7,17 +7,17 @@ dashedName: step-30
# --description--
-Declare a `regex` variable, and assign it a regex that matches the character `e`.
+Dichiara una variabile `regex` e assegnale un'espressione regolare che trova il carattere `e`.
# --hints--
-Your `isInvalidInput` function should have a `regex` variable.
+La funzione `isInvalidInput` dovrebbe avere una variabile `regex`.
```js
assert.match(isInvalidInput.toString(), /regex\s*=/);
```
-Your `regex` variable should be set to `/e/`.
+La variabile `regex` dovrebbe essere impostata su `/e/`.
```js
assert.match(isInvalidInput.toString(), /regex\s*=\s*\/e\//);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a518d54f63181ab639a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a518d54f63181ab639a.md
index 2bf1aa0f9a3..ca98bf68157 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a518d54f63181ab639a.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a518d54f63181ab639a.md
@@ -7,11 +7,11 @@ dashedName: step-31
# --description--
-The `e` in a number input can also be an uppercase `E`. Regex has a flag for this, however – the `i` flag, which stands for "insensitive". This flag makes your pattern case-insensitive. Add the `i` flag to your regex pattern.
+La `e` in un input numerico può anche essere una `E` maiuscola. Ma per questo le espressioni regolari hanno un'opzione – l'opzione `i` che sta per "insensitive". Questa opzione rende il pattern insensibile alle maiuscole/minuscole. Aggiungi l'opzione `i` al pattern regex.
# --hints--
-Your `regex` value should have the `i` flag.
+Il valore di `regex` dovrebbe avere l'opzione `i`.
```js
assert.match(isInvalidInput.toString(), /regex\s*=\s*\/e\/i/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a92fd148d3264d5322b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a92fd148d3264d5322b.md
index 19873a84492..2029adf3ef4 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a92fd148d3264d5322b.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a92fd148d3264d5322b.md
@@ -7,19 +7,19 @@ dashedName: step-32
# --description--
-Number inputs only allow the `e` to occur between two digits. To match any number, you can use the character class `[0-9]`. This will match any digit between `0` and `9`.
+Gli input numerici consentono che la `e` sia solo tra due cifre. Per trovare qualsiasi numero puoi usare la classe di caratteri `[0-9]`. Troverà ogni cifra tra `0` e `9`.
-Add this character class before and after `e` in your pattern.
+Aggiungi questa classe di caratteri prima e dopo la `e` nel pattern.
# --hints--
-You should add the `[0-9]` character class before `e` in your regular expression.
+Dovresti aggiungere la classe di caratteri `[0-9]` prima della `e` nell'espressione regolare.
```js
assert.match(isInvalidInput.toString(), /regex\s*=\s*\/\[0-9\]e/);
```
-You should add the `[0-9]` character class after `e` in your regular expression.
+Dovresti aggiungere la classe di caratteri `[0-9]` dopo la `e` nell'espressione regolare.
```js
assert.match(isInvalidInput.toString(), /regex\s*=\s*\/\[0-9\]e\[0-9\]\//);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5adfe2981b332eb007b6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5adfe2981b332eb007b6.md
index 75477ddd763..7bce3c083f4 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5adfe2981b332eb007b6.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5adfe2981b332eb007b6.md
@@ -7,17 +7,17 @@ dashedName: step-33
# --description--
-The `+` modifier in a regex allows you to match a pattern that occurs one or more times. To match your digit pattern one or more times, add a plus after each of the digit character classes. For example: `[0-9]+`.
+Il modificatore `+` in una regex ti consente di trovare un pattern che si verifica una o più volte. Per abbinare il pattern di una cifra ripetuta una o più volte, aggiungi un più dopo ognuna delle classi di caratteri di cifre. Ad esempio: `[0-9]+`.
# --hints--
-You should add the `+` modifier to the character class before `e` in your regular expression.
+Dovresti aggiungere il modificatore `+` alla classe di caratteri prima della `e` nell'espressione regolare.
```js
assert.match(isInvalidInput.toString(), /regex\s*=\s*\/\[0-9\]\+e/);
```
-You should add the `+` modifier to the character class after `e` in your regular expression.
+Dovresti aggiungere il modificatore `+` alla classe di caratteri dopo la `e` nell'espressione regolare.
```js
assert.match(isInvalidInput.toString(), /regex\s*=\s*\/\[0-9\]\+e\[0-9\]\+\//);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5bcfebff0734593fad19.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5bcfebff0734593fad19.md
index 95686b3c3a0..a833464017e 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5bcfebff0734593fad19.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5bcfebff0734593fad19.md
@@ -7,17 +7,17 @@ dashedName: step-34
# --description--
-There is a shorthand character class to match any digit: `\d`. Replace your `[0-9]` character classes with this shorthand.
+Esiste una classe di caratteri scorciatoia che indica qualsiasi cifra: `\d`. Sostituisci la classe di caratteri `[0-9]` con questa scorciatoia.
# --hints--
-You should replace the `[0-9]` character class before `e` with `\d` in your regular expression.
+Dovresti sostituire la classe di caratteri `[0-9]` prima della `e` con `\d` nell'espressione regolare.
```js
assert.match(isInvalidInput.toString(), /regex\s*=\s*\/\\d\+e/);
```
-You should replace the `[0-9]` character class after `e` with `\d` in your regular expression.
+Dovresti sostituire la classe di caratteri `[0-9]` dopo la `e` con `\d` nell'espressione regolare.
```js
assert.match(isInvalidInput.toString(), /regex\s*=\s*\/\\d\+e\\d\+\//);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5c438f523a359769106c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5c438f523a359769106c.md
index f6f61282ce9..c5482fd0032 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5c438f523a359769106c.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5c438f523a359769106c.md
@@ -7,25 +7,25 @@ dashedName: step-35
# --description--
-Strings have a `.match()` method, which takes a regex argument. `.match()` will return an array of match results – containing either the first match, or all matches if the global flag is used.
+Le stringhe hanno un metodo `.match()` che richiede un argomento regex. `.match()` restituisce un array con i risultati trovati – contenente la prima corrispondenza o tutte, se viene usata l'opzione globale.
-Return the result of calling the `.match()` method on `str` and passing your `regex` variable as the argument. You'll use this match result later on.
+Restituisci il risultato della chiamata del metodo `.match()` su `str` e passa la variabile `regex` come argomento. Userai il risultato di match più avanti.
# --hints--
-Your `isInvalidInput` function should call the `.match()` method on `str`.
+`isInvalidInput` dovrebbe chiamare il metodo `.match()` su `str`.
```js
assert.match(isInvalidInput.toString(), /str\.match\(/);
```
-You should pass `regex` as the argument to the `.match()` method.
+Dovresti passare `regex` come argomento al metodo `.match()`.
```js
assert.match(isInvalidInput.toString(), /str\.match\(\s*regex\s*\)/);
```
-Your `isInvalidInput` function should directly return the result of the `.match()` call.
+La funzione `isInvalidInput` dovrebbe restituire direttamente il risultato della chiamata di `.match()`.
```js
assert.match(isInvalidInput.toString(), /return\s+str\.match\(\s*regex\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md
index 228f3503303..25b7ce9be22 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md
@@ -7,23 +7,23 @@ dashedName: step-36
# --description--
-Your next step is to allow users to add entries to the calorie counter. Declare an empty function `addEntry`. This function should not take any parameters.
+Il prossimo passo è consentire agli utenti di aggiungere delle voci al contatore di calorie. Dichiara una funzione vuota `addEntry`. La funzione non dovrebbe accettare parametri.
# --hints--
-You should declare an `addEntry` variable.
+Dovresti dichiarare una variabile `addEntry`.
```js
assert.isDefined(addEntry);
```
-Your `addEntry` variable should be a function.
+La variabile `addEntry` dovrebbe essere una funzione.
```js
assert.isFunction(addEntry);
```
-Your `addEntry` function should not take any parameters.
+La funzione `addEntry` non dovrebbe prendere alcun parametro.
```js
assert.match(addEntry?.toString(), /\(\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1dfbd56c71e278800010c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1dfbd56c71e278800010c.md
index 1bc417c8bbb..f9185e17eb8 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1dfbd56c71e278800010c.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1dfbd56c71e278800010c.md
@@ -7,25 +7,25 @@ dashedName: step-37
# --description--
-You'll need to know which category the entry goes in. Thankfully, you added a dropdown for the user to select a category.
+Ti occorrerà sapere in quale categoria inserire la voce. Fortunatamente, hai aggiunto un menu a discesa per far selezionare una categoria all'utente.
-Remember that you queried that dropdown earlier in your JavaScript and assigned it to the `entryDropdown` button. Use concatenation to add `#` to the beginning of the `value` property of `entryDropdown`, and assign that result to a `targetId` variable.
+Ricorda che in precedenza hai selezionato il menu a discesa nel codice JavaScript e lo hai assegnato al pulsante `entryDropdown`. Usa la concatenazione per aggiungere `#` all'inizio della proprietà `value` di `entryDropdown` e assegna questo risultato a una variabile `targetId`.
# --hints--
-Your `addEntry` function should have a `targetId` variable.
+La funzione `addEntry` dovrebbe avere una variabile `targetId`.
```js
assert.match(addEntry.toString(), /targetId\s*=/);
```
-Your `targetId` variable should start with the string `#`.
+La variabile `targetId` dovrebbe iniziare con la stringa `#`.
```js
assert.match(addEntry.toString(), /targetId\s*=\s*('|")#\1/);
```
-You should use concatenation to add `entryDropdown.value` after your `#` string.
+Dovresti usare la concatenazione per aggiungere `entryDropdown.value` dopo la stringa `#`.
```js
assert.match(addEntry.toString(), /targetId\s*=\s*('|")#\1\s*\+\s*entryDropdown\.value/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e0af28078f2dfad9eb3e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e0af28078f2dfad9eb3e.md
index 413b5f76d84..2201b8966ef 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e0af28078f2dfad9eb3e.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e0af28078f2dfad9eb3e.md
@@ -7,29 +7,29 @@ dashedName: step-38
# --description--
-Now you need to target the `.input-container` element within the element that has your `targetId`. Declare a new `targetInputContainer` variable, and assign it the value of `document.querySelector()`. Use concatenation to separate `targetId` and `'.input-container'` with a space, and pass that string to `querySelector()`.
+Ora devi selezionare l'elemento `.input-container` all'interno dell'elemento che ha il `targetId`. Dichiara una nuova variabile `targetInputContainer` e assegnale il valore di `document.querySelector()`. Usa la concatenazione per separare `targetId` e `'.input-container'` con uno spazio, e passa la stringa a `querySelector()`.
# --hints--
-Your `addEntry` function should have a `targetInputContainer` variable.
+La funzione `addEntry` dovrebbe avere una variabile `targetInputContainer`.
```js
assert.match(addEntry.toString(), /targetInputContainer\s*=/);
```
-Your `targetInputContainer` variable should be set to `document.querySelector()`.
+La variabile `targetInputContainer` dovrebbe essere impostata su `document.querySelector()`.
```js
assert.match(addEntry.toString(), /targetInputContainer\s*=\s*document\.querySelector\(/);
```
-You should pass `targetId` to your `querySelector()` method.
+Dovresti passare `targetId` al metodo `querySelector()`.
```js
assert.match(addEntry.toString(), /targetInputContainer\s*=\s*document\.querySelector\(\s*targetId\s*/);
```
-You should concatenate `' .input-container'` to `targetId`. Remember to include the space at the beginning of `.input-container`.
+Dovresti concatenare `' .input-container'` a `targetId`. Ricordati di includere lo spazio all'inizio di `.input-container`.
```js
assert.match(addEntry.toString(), /targetInputContainer\s*=\s*document\.querySelector\(\s*targetId\s*\s*\+\s*('|")\s\.input-container\1\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e1965a898d302e0af4e3.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e1965a898d302e0af4e3.md
index 06e5ac50cec..9330d2fc30a 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e1965a898d302e0af4e3.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e1965a898d302e0af4e3.md
@@ -7,9 +7,9 @@ dashedName: step-39
# --description--
-JavaScript has a feature called template literals, which allow you to interpolate variables directly within a string. Template literals are denoted with backticks ` `` `, as opposed to single or double quotes. Variables can be passed in to a template literal by surrounding the variable with `${}` – the value of the variable will be inserted into the string.
+JavaScript ha una funzionalità chiamata template literal, che consente di interpolare le variabili direttamente all'interno di una stringa. I template literal sono indicati con accenti gravi ` `` `, invece che tramite virgolette singole o doppie. Le variabili possono essere passate a un template literal racchiudendo la variabile in `${}` – il valore della variabile sarà inserito nella stringa.
-For example:
+Ad esempio:
```js
const name = "Naomi";
@@ -17,19 +17,19 @@ const templateLiteral = `Hello, my name is ${name}~!`;
console.log(templateLiteral);
```
-The console will show the string "Hello, my name is Naomi~!".
+La console mostrerà la stringa "Hello, my name is Naomi~!".
-Replace your concatenated string in the `querySelector` with a template literal – be sure to keep the space between your `targetId` variable and `.input-container`.
+Sostituisci la stringa concatenata nel `querySelector` con un template literal – assicurati di mantenere lo spazio tra la variabile `targetId` e `.input-container`.
# --hints--
-You should use a template literal in your `querySelector` method.
+Dovresti usare un template literal nel metodo `querySelector`.
```js
assert.match(code, /const\s+targetInputContainer\s*=\s*document\.querySelector\(`.*`\)/);
```
-Your template literal should have the value `{targetId} .input-container`.
+Il template literal dovrebbe avere il valore `{targetId} .input-container`.
```js
assert.match(code, /const\s+targetInputContainer\s*=\s*document\.querySelector\(`\$\{targetId\}\s\.input-container`\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e5b4b3c8a031def3bd65.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e5b4b3c8a031def3bd65.md
index 6aeab26c100..940eb60cc0d 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e5b4b3c8a031def3bd65.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e5b4b3c8a031def3bd65.md
@@ -7,23 +7,23 @@ dashedName: step-40
# --description--
-Thanks to template literals, you actually don't need the `targetId` variable at all. Remove that variable, and update your template literal to replace `targetId` with `entryDropdown.value` – remember to add `#` before that, in the string.
+Grazie ai template literals, in realtà la variabile `targetId` non ti serve affatto. Rimuovila e aggiorna il template literal per sostituire `targetId` con `entryDropdown.value` – ricorda di aggiungere il `#` prima di esso nella stringa.
# --hints--
-You should remove the `targetId` variable.
+Dovresti rimuovere la variabile `targetId`.
```js
assert.notMatch(addEntry.toString(), /targetId\s*=/);
```
-You should replace the `targetId` reference in your template literal with `entryDropdown.value`.
+Dovresti sostituire il riferimento a `targetId` nel template literal con `entryDropdown.value`.
```js
assert.match(code, /const\s+targetInputContainer\s*=\s*document\.querySelector\(`#?\$\{entryDropdown\.value\}\s\.input-container`\s*\)/);
```
-You should add `#` at the beginning of your template literal.
+Dovresti aggiungere un `#` all'inizio del template literal.
```js
assert.match(code, /const\s+targetInputContainer\s*=\s*document\.querySelector\(`#\$\{entryDropdown\.value\}\s\.input-container`\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e704ee12703347625900.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e704ee12703347625900.md
index b658496aeee..66c87ca286f 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e704ee12703347625900.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e704ee12703347625900.md
@@ -7,23 +7,23 @@ dashedName: step-41
# --description--
-You will want to number the entries a user adds. Declare an `entryNumber` variable and give it the value of `targetInputContainer.querySelectorAll()`. You do not need to pass an argument to the query selector yet.
+Desideri numerare le voci che l'utente aggiunge. Dichiara una variabile `entryNumber` e dalle il valore di `targetInputContainer.querySelectorAll()`. Non devi ancora passare un argomento al selettore.
# --hints--
-You should have an `entryNumber` variable.
+Dovresti avere una variabile `entryNumber`.
```js
assert.match(addEntry.toString(), /entryNumber\s*=/);
```
-Your `entryNumber` variable should have the value of `targetInputContainer.querySelectorAll()`.
+La variabile `entryNumber` dovrebbe avere il valore di `targetInputContainer.querySelectorAll()`.
```js
assert.match(addEntry.toString(), /entryNumber\s*=\s*targetInputContainer\.querySelectorAll\(/);
```
-You should not pass an argument to `querySelectorAll()`.
+Non dovresti passare un argomento a `querySelectorAll()`.
```js
assert.match(addEntry.toString(), /entryNumber\s*=\s*targetInputContainer\.querySelectorAll\(\s*\)/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2164c0df38a382062c4af.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2164c0df38a382062c4af.md
index 15622f17e14..4d75b73bb85 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2164c0df38a382062c4af.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2164c0df38a382062c4af.md
@@ -7,27 +7,27 @@ dashedName: step-42
# --description--
-Each entry will have a text input for the entry's name, and a number input for the calories. To get a count of the number of entries, you can query by text inputs. Note that you cannot query by number inputs, as you have an extra number input for the user's calorie budget.
+Ogni voce avrà un input di testo per il nome dell'elemento e un input numerico per le calorie. To get a count of the number of entries, you can query by text inputs. Note that you cannot query by number inputs, as you have an extra number input for the user's calorie budget.
-Pass the string `input[type="text"]` to the `querySelectorAll()` method. Remember that you will need to use single quotes for your string, so that you can use double quotes within.
+Passa la stringa `input[type="text"]` al metodo `querySelectorAll()`. Ricorda che devi usare le virgolette singole per la stringa, in modo da poter usare le virgolette doppie all'interno.
-This will return a `NodeList` of all the text inputs in the form. You can then access the `length` property of the `NodeList` to get the number of entries. Do this on the same line.
+Questo restituirà un `NodeList` di tutti gli input di testo nel modulo. Quindi accedi alla proprietà `length` di `NodeList` per ottenere il numero di entrate. Fallo sulla stessa riga.
# --hints--
-You should pass the string `input[type="text"]` to the `querySelectorAll()` method.
+Dovresti passare la stringa `input[type="text"]` al metodo `querySelectorAll()`.
```js
assert.match(addEntry.toString(), /entryNumber\s*=\s*targetInputContainer\.querySelectorAll\(\s*'input\[type="text"]'\)/)
```
-You should access the `length` property of your `querySelectorAll()`.
+Dovresti accedere alla proprietà `length` di `querySelectorAll()`.
```js
assert.match(addEntry.toString(), /\.querySelectorAll\(\s*'input\[type="text"]'\)\.length/)
```
-Your `entryNumber` variable should be the `length` of the `querySelectorAll`.
+La variabile `entryNumber` dovrebbe essere la lunghezza (`length`) di `querySelectorAll`.
```js
assert.match(addEntry.toString(), /entryNumber\s*=\s*targetInputContainer\.querySelectorAll\(\s*'input\[type="text"]'\)\.length/)
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c216da562fbb3957b9cb2c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c216da562fbb3957b9cb2c.md
index a7c1e1d3e7b..c2a1a1029cf 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c216da562fbb3957b9cb2c.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c216da562fbb3957b9cb2c.md
@@ -7,17 +7,17 @@ dashedName: step-43
# --description--
-Now you need to build your dynamic HTML string to add to the webpage. Declare a new `HTMLString` variable, and assign it an empty template literal string.
+Ora devi creare la stringa HTML dinamica da aggiungere alla pagina web. Dichiara una nuova variabile `HTMLString` e assegnale una stringa template literal vuota.
# --hints--
-Your `addEntry` function should have an `HTMLString` variable.
+La funzione `addEntry` dovrebbe avere una variabile `HTMLString`.
```js
assert.match(addEntry.toString(), /HTMLString\s*=/)
```
-Your `HTMLString` should be an empty template literal.
+`HTMLString` dovrebbe essere un template literal vuoto.
```js
assert.match(code, /HTMLString\s*=\s*``/);
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2171c1e5b6e3aa51768d0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2171c1e5b6e3aa51768d0.md
index e8ced7f3436..924e84dce8d 100644
--- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2171c1e5b6e3aa51768d0.md
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2171c1e5b6e3aa51768d0.md
@@ -7,23 +7,23 @@ dashedName: step-44
# --description--
-Start your `HTMLString` with a new line, then create a `label` element. Give that element the text `Entry # Name`, using your template literal syntax to replace `#` with the value of `entryNumber`.
+Fai iniziare `HTMLString` con una nuova riga, quindi crea un elemento `label`. Dai a questo elemento il testo `Entry # Name`, usando la sintassi di un template literal per sostituire `#` con il valore di `entryNumber`.
# --hints--
-Your `HTMLString` variable should start with a new line.
+La variabile `HTMLString` dovrebbe iniziare con una nuova riga.
```js
assert.match(code, /HTMLString\s*=\s*`\n/);
```
-You should add a `label` element on the new line.
+Dovresti aggiungere un elemento `label` sulla nuova riga.
```js
assert.match(code, /HTMLString\s*=\s*`\n\s*