কম্পিউটার

জাভাস্ক্রিপ্টের শেষ উপাদান থেকে পিছনের দিকে গণনা করে অ্যারে এ থেকে অ্যারে বি পেতে সঠিক অ্যালগরিদমটি কী হওয়া উচিত?


নিম্নলিখিত বাইনারি অ্যারে (অ্যারে 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];

ফাংশন বোঝা

অ্যারে অ্যারের উপাদানগুলি 0 বা 1 হতে পারে৷ ফাংশনটি অ্যারে অ্যারের শেষ উপাদান থেকে পিছনের দিকে গণনা করে, যদি অ্যারে অ্যারেতে পরপর 1 থাকে তবে আউটপুট অ্যারেতে সংশ্লিষ্ট উপাদানটি 1 হবে তবে অ্যারে অ্যারে 2য় পরপর 1টির জন্য , এটি হবে 2। 3য় একটি ইনপুট অ্যারের জন্য আউটপুট অ্যারের উপাদানটি 3 হবে, কিন্তু অ্যারে অ্যারে 0-এর জন্য এটি আউটপুট অ্যারেতেও 0 হবে।

তাহলে আসুন Array.prototype.reduceRight() পদ্ধতি ব্যবহার করে এই ফাংশনের জন্য কোড লিখি, যা সাধারণ হ্রাস পদ্ধতির মতো একই কাজ করে, এটি বাম দিকের পরিবর্তে ডান থেকে শুরু হয় −

উদাহরণ

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. জাভাস্ক্রিপ্ট - একটি স্প্যান উপাদানের পাঠ্য পান

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

  3. C# ব্যবহার করে একটি অ্যারে থেকে শেষ উপাদান পেতে প্রোগ্রাম

  4. একটি অ্যারে থেকে শেষ উপাদান পেতে C# প্রোগ্রাম