Sobes.tech
Junior

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