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) |