Sobes.tech
Junior

Ποια είναι η διαφορά μεταξύ των μεθόδων 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 Νέος πίνακας
Τροποποίηση πίνακα Δεν δημιουργεί νέο πίνακα Δημιουργεί νέο πίνακα
Κύριος σκοπός Εκτέλεση ενεργειών σε κάθε στοιχείο Μετατροπή πίνακα σε άλλο
Συνέχιση με μεθόδους Δεν υποστηρίζεται φυσικά Υποστηρίζεται (επιστρέφει πίνακα)