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