Junior
Kuo skiriasi foreach ir map metodai JavaScript?
sobes.tech AI
Atsakymas iš AI
forEach peržiūri masyvo elementus ir vykdo atgalinio iškvietimo funkciją kiekvienam elementui, tačiau nesukuria naujo masyvo. Jis naudojamas šalutiniams efektams, tokiems kaip išvedimas į konsolę arba išorinų kintamųjų keitimas.
map taip pat peržiūri masyvo elementus ir vykdo atgalinio iškvietimo funkciją kiekvienam elementui. Tačiau jis grąžina naują masyvą, kuriame yra šios funkcijos rezultatų kiekvienam elementui. Jis naudojamas vieno masyvo konvertavimui į kitą.
Pavyzdys su forEach:
const numbers = [1, 2, 3];
numbers.forEach(number => console.log(number * 2));
// Išvestis:
// 2
// 4
// 6
// numbers lieka [1, 2, 3]
Pavyzdys su map:
const numbers = [1, 2, 3];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers);
// Išvestis: [2, 4, 6]
// numbers lieka [1, 2, 3]
Svarbiausias skirtumas tas, kad map yra "funkcinis" metodas, kuris nekeičia pradinio masyvo ir grąžina naują, o forEach yra skirtas atlikti veiksmus kiekvienam elementui be naujo masyvo grąžinimo.
| Kriterijus | forEach |
map |
|---|---|---|
| Grąžinimo reikšmė | undefined |
Naujas masyvas |
| Masyvo keitimas | Nesukuria naujo masyvo | Sukuria naują masyvą |
| Pagrindinis tikslas | Veiksmų atlikimas kiekvienam elementui | Masyvo konvertavimas į naują masyvą |
| Metodų grandinėjimas | Natūraliai nepalaikomas | Palaikomas (grąžina masyvą) |