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