Qual è la differenza tra i metodi foreach e map in JavaScript?
sobes.tech AI
Risposta dell'AI
forEach itera gli elementi di un array e esegue una funzione di callback per ogni elemento, ma non crea un nuovo array. Viene usato per effetti collaterali, come la stampa in console o la modifica di variabili esterne.
map itera anch'esso sugli elementi di un array e esegue una funzione di callback per ogni elemento. Tuttavia, restituisce un nuovo array contenente i risultati dell'esecuzione di questa funzione su ogni elemento. Viene usato per trasformare un array in un altro.
Esempio con forEach:
const numbers = [1, 2, 3];
numbers.forEach(number => console.log(number * 2));
// Output:
// 2
// 4
// 6
// numbers rimane [1, 2, 3]
Esempio con map:
const numbers = [1, 2, 3];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers);
// Output: [2, 4, 6]
// numbers rimane [1, 2, 3]
La differenza principale è che map è un metodo "funzionale" che non modifica l'array originale e ne restituisce uno nuovo, mentre forEach è principalmente destinato a eseguire azioni su ogni elemento senza restituire un nuovo array.
| Criterio | forEach |
map |
|---|---|---|
| Valore restituito | undefined |
Nuovo array |
| Modifica dell'array | Non crea un nuovo array | Crea un nuovo array |
| Scopo principale | Eseguire azioni su ogni elemento | Trasformare un array in un altro |
| Chaining di metodi | Non supportato nativamente | Supportato (restituisce un array) |