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

জাভাস্ক্রিপ্টে চেইনড অপারেশন ক্লাস তৈরি


সমস্যা

আমাদের একটি ব্যবহারকারী-সংজ্ঞায়িত ডেটা টাইপ Streak তৈরি করতে হবে যা যেকোনো পরিমাণে মান এবং অপারেশন বारी-बারি থেকে চেইন করা যায়।

মান হতে পারে নিচের স্ট্রিংগুলো –

→ one, two, three, four, five, six, seven, eight, nine

অপারেশন হতে পারে নিচের স্ট্রিংগুলো –

→ plus, minus

উদাহরণস্বরূপ, আমাদের ক্লাসের প্রসঙ্গে যদি আমরা নিচের কোডটি ইমপ্লিমেন্ট করি –

Streak.one.plus.five.minus.three;

তবে আউটপুট হওয়া উচিত –

const output = 3;

আউটপুট ব্যাখ্যা

কারণ ঘটিত অপারেশনগুলো হল –

1 + 5 - 3 = 3

উদাহরণ

নিচে কোডটি দেওয়া হল –

const Streak = function() { 
  let value = 0; 
  const operators = { 
    'plus': (a, b) => a + b, 
    'minus': (a, b) => a - b 
  }; 
  const numbers = [ 
    'zero', 'one', 'two', 'three', 'four', 'five', 
    'six', 'seven', 'eight', 'nine' 
  ]; 
  Object.keys(operators).forEach((operator) => { 
    const operatorFunction = operators[operator]; 
    const operatorObject = {}; 
    numbers.forEach((num, index) => { 
      Object.defineProperty(operatorObject, num, { 
        get: () => value = operatorFunction(value, index) 
      }); 
    }); 
    Number.prototype[operator] = operatorObject; 
  }); 
  numbers.forEach((num, index) => { 
    Object.defineProperty(this, num, { 
      get: () => { 
        value = index; 
        return Number(index); 
      } 
    }); 
  }); 
}; 
const streak = new Streak(); 
console.log(streak.one.plus.five.minus.three);

আউটপুট

কনসোল আউটপুট –

3

  1. জাভাস্ক্রিপ্টে লিংকড লিস্ট তৈরি করা (বেসিক)

  2. জাভাস্ক্রিপ্টে super কীওয়ার্ড কী?

  3. জাভাস্ক্রিপ্টে Class কীওয়ার্ড

  4. জাভাস্ক্রিপ্টে ইনভার্স অপারেশন