Ποια είναι η διαφορά μεταξύ των μεθόδων foreach και map στη JavaScript;
sobes.tech AI
Απάντηση από AI
Το forEach διατρέχει τα στοιχεία ενός πίνακα και εκτελεί μια συνάρτηση επιστροφής κλήσης για κάθε στοιχείο, αλλά δεν δημιουργεί έναν νέο πίνακα. Χρησιμοποιείται για παρενέργειες, όπως η εμφάνιση στην κονσόλα ή η τροποποίηση εξωτερικών μεταβλητών.
Το map επίσης διατρέχει τα στοιχεία του πίνακα και εκτελεί μια συνάρτηση επιστροφής κλήσης για κάθε στοιχείο. Ωστόσο, επιστρέφει έναν νέο πίνακα που περιέχει τα αποτελέσματα της εκτέλεσης αυτής της συνάρτησης σε κάθε στοιχείο. Χρησιμοποιείται για τη μετατροπή ενός πίνακα σε έναν άλλο.
Παράδειγμα με forEach:
const numbers = [1, 2, 3];
numbers.forEach(number => console.log(number * 2));
// Έξοδος:
// 2
// 4
// 6
// ο πίνακας numbers παραμένει [1, 2, 3]
Παράδειγμα με map:
const numbers = [1, 2, 3];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers);
// Έξοδος: [2, 4, 6]
// ο πίνακας numbers παραμένει [1, 2, 3]
Το βασικό διαφορά είναι ότι το map είναι μια "λειτουργική" μέθοδος που δεν τροποποιεί τον αρχικό πίνακα και επιστρέφει έναν νέο, ενώ το forEach προορίζεται κυρίως για την εκτέλεση ενεργειών σε κάθε στοιχείο χωρίς να επιστρέφει έναν νέο πίνακα.
| Κριτήριο | forEach |
map |
|---|---|---|
| Επιστρεφόμενη τιμή | undefined |
Νέος πίνακας |
| Τροποποίηση πίνακα | Δεν δημιουργεί νέο πίνακα | Δημιουργεί νέο πίνακα |
| Κύριος σκοπός | Εκτέλεση ενεργειών σε κάθε στοιχείο | Μετατροπή πίνακα σε άλλο |
| Συνέχιση με μεθόδους | Δεν υποστηρίζεται φυσικά | Υποστηρίζεται (επιστρέφει πίνακα) |