কম্পিউটার টিউটোরিয়াল

JavaScript-এ শেষ এলিমেন্ট থেকে উল্টে গণনা করে অ্যারে B বানানো অ্যারে A থেকে


নিচের বাইনারি অ্যারে (অ্যারে A) কনসিডার করুন:

const arr = [1,0,1,1,1,1,0,1,1];

যখন এই অ্যারেটি ফাংশনের মাধ্যমে পাস করানো হয়, যেনাম sumRight(), তবে নিচের আউটপুট অ্যারে (অ্যারে B) তৈরি হয়:

const output = [1,0,4,3,2,1,0,2,1];

ফাংশন বুঝা

অ্যারে arr-এর এলিমেন্টগুলো ০ বা ১ হতে পারে। ফাংশনটি অ্যারে arr-এর শেষ এলিমেন্ট থেকে উল্টে গণনা শুরু করে, যদি অ্যারে arr-এ কনসিকিউটিভ ১ থাকে তবে আউটপুট অ্যারেতে সংশ্লিষ্ট এলিমেন্ট হবে ১ কিন্তু অ্যারে arr-এ দ্বিতীয় কনসিকিউটিভ ১-এর জন্য সেটি হবে ২। ইনপুট অ্যারেতে তৃতীয় ১-এর জন্য আউটপুটে ৩ হবে, কিন্তু অ্যারে arr-এ ০ रहनेলে আউটপুটেও ০ থাকবে।

তাহলে, এই ফাংশনের কোড লিখি Array.prototype.reduceRight() মেথড ব্যবহার করে, যা নরমল reduce মেথডের মতো কাজ করে, শুধু ডানে থেকে শুরু করে বামে চলে:

উদাহরণ

const arr = [1,0,1,1,1,1,0,1,1]; const sumRight = arr => {    return arr.reduceRight((acc, val) => {       const { prev, res } = acc;       if(val === 0){          return {             prev: 0,             res: res.concat(0)          };       };       return {          res: res.concat(val+prev),          prev: prev+1       };    }, {       prev: 0,       res: []    }).res.reverse(); }; console.log(sumRight(arr));

আউটপুট

কনসোলে আউটপুট হবে:

[    1, 0, 4, 3, 2,    1, 0, 2, 1 ]

  1. জাভাস্ক্রিপ্ট দিয়ে span এলিমেন্টের টেক্সট পাওয়া

  2. জাভাস্ক্রিপ্ট কোড অ্যারের শেষ এলিমেন্ট প্রিন্ট করার জন্য

  3. সি শার্প ব্যবহার করে অ্যরেতে শেষ উপাদান পাওয়ার প্রোগ্রাম

  4. C#-এ অ্যারে থেকে শেষ উপাদান পাওয়া