Sobes.tech
Junior

Mis vahe on foreach ja map meetoditel JavaScriptis?

sobes.tech AI

Vastus AI-lt

forEach läbivad massiivi elemendid ja täidab tagasikutsumise funktsiooni iga elemendi jaoks, kuid ei loo uut massiivi. Seda kasutatakse kõrvaltoimete jaoks, näiteks konsoolile väljastamiseks või väliste muutujate muutmiseks.

map samuti läbivad massiivi elemendid ja täidab tagasikutsumise funktsiooni iga elemendi jaoks. Kuid see tagastab uue massiivi, mis sisaldab selle funktsiooni tulemusi iga elemendi jaoks. Seda kasutatakse ühe massiivi teisendamiseks teiseks.

Näide forEach-iga:

const numbers = [1, 2, 3];
numbers.forEach(number => console.log(number * 2));
// Väljund:
// 2
// 4
// 6
// numbers jääb [1, 2, 3]

Näide map-iga:

const numbers = [1, 2, 3];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers);
// Väljund: [2, 4, 6]
// numbers jääb [1, 2, 3]

Peamine erinevus on see, et map on "funktsionaalne" meetod, mis ei muuda algset massiivi ja tagastab uue, samas kui forEach on mõeldud peamiselt tegevuste tegemiseks iga elemendi jaoks ilma uue massiivi tagastamiseta.

Kriteerium forEach map
Tagastatav väärtus undefined Uus massiiv
Massiivi muutmine Ei loo uut massiivi Loob uue massiivi
Peamine eesmärk Tegevuste tegemine iga elemendi jaoks Massiivi teisendamine uueks massiiviks
Metodite ahelad Ei toetata loomulikult Toetatakse (tagastab massiivi)