Array.prototype.reduce() পদ্ধতি অ্যারের প্রতিটি উপাদানগুলিতে একটি রিডুসার ফাংশন রির্টান করে।
অর্থৎ অ্যারের প্রতিটি উপাদানগুলিতে একটি রিডুসার ফাংশন return করে (আমি যে ফাংশনটি প্রধান করেছি ) এবং এটি একটি একক আউটপুট মান প্রকাশ করে। কিন্তু reduce() মেইন আরে কে পরিবর্তন করে না
অন্য ভাবে বলা যায় যে reduce() যখন তার current Value নিয়া কাজ করে তখন তার আগের ভেলুটা এর সাথে নিয়ে কাজ করে । আর্থৎ reduce() তার আগের ও বর্তমান মান নিয়ে কাজ করে ফলাফল প্রকাশ করে ।
1 2 3 4 5 6 7 8 9 10 11 |
// var numbers = [11,12, 13, 44, 25, 80, 10]; var numbers = [1, 2, 3, 4, 5, 6, 7]; var sum1 = numbers.reduce((peval,currval)=>{ return peval+currval; }); console.log(sum1); Answer: 28 |
এখানে সবটা এরেকে রিডিউস করে একটি ছোট করে দেখিয়েছে ।
১+২+৩+৪+৫+৬+৭ = ২৮
যেমন এখানে সব গুলোর যোগ হয়েছে ২৮ । যখন ২ এর উপর কাজ করে আগের ১ কে সাথে নিয়ে আসে যখন ৩ এর উপর কাজ করে ২ কে নিয়ে আসে ৪ এর সময় ৩ কে আনে ।এবং যখন প্রথমে ১ এর এর উপর কাজ করে কিছুই পায় নাই তখন প্রথমটাই ইনিসিয়াল ভেলু নাই বলেই প্রথমটার জন্যে কিছুই ধ্রবে না বা 0 বা undefined বা null দেখাবে ,
1 2 3 4 5 6 7 8 9 10 11 |
var numbers = [1, 2, 3, 4, 5, 6, 7]; var sum2 = numbers.reduce((peval,currval)=>{ return peval+currval; },10); console.log(sum2); Answer: 38 |
১০+ ১+২+৩+৪+৫+৬+৭ = ৩৮
যেমন এখানে সব গুলোর যোগ হয়েছে ২৮+১০ =৩৮ । কারন এখানে মোট যোগ ফল ২৮ আর ইনিসিয়াল মান ১০ তাই মোট ৩৮ ।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
var numbers1 = [11,12, 13, 44, 25, 80, 10]; // const max = numbers1.reduce((peval,curval)=>{ // if (peval>curval){ // return peval; // }else{ // return curval; // } // }) // Or use the reduce() const result = numbers1.reduce((p,v)=>{ // return Math.max(p,v); return Math.min(p,v); }) console.log(result); Answer: max 80 and Answer: min 10 |
আরো উদাহারন –
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
const products =[ { name: 'Pen', amount: 5, price: 20 }, { name: 'Book', amount: 3, price: 100 }, { name: 'bag', amount: 2, price: 200 }, ]; // const totalTk = products.reduce(sum,0); // function sum(peval,items){ // return peval + items.amount * items.price; // } // or shortly const totalTk = products.reduce(function(peval,items){ return peval + items.amount * items.price; },0); console.log(totalTk); ---- //----------------- const count = ['yes','No','yes','No','yes','No','yes','No','Absent']; const resultCount = count.reduce((pev,cru)=>{ if(pev[cru]){ pev[cru]++ ; }else{ pev[cru] = 1 ; }; return pev; },{}) console.log(resultCount); { yes: 4, No: 4, Absent: 1 } |
reduce() মেথড একটি সিংগেল মান (Value) দেয় ।
reduce() আমাদের প্রদত্ত ফাংশনটি প্রতিটির জন্ন্যে বাম থেকে ডানে কাজ করে ।