Ի՞նչ տարբերություն կա JavaScript-ում foreach և map մեթոդների միջև։
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 |
Նոր զանգված |
| Զանգվածի փոփոխություն | Չի ստեղծում նոր զանգված | Ստեղծում է նոր զանգված |
| Հիմնական նպատակ | Գործողություններ կատարել յուրաքանչյուր տարրին | Զանգվածը փոխարկել մյուսի մեջ |
| Մեթոդների շղթայակապություն | Բնականորեն չի աջակցվում | Աջակցվում է (վերադարձնում է զանգված) |