সমস্যা
আমাদের জাভাস্ক্রিপ্টে একটি ব্যবহারকারীর সংজ্ঞায়িত ডেটা টাইপ স্ট্রিক তৈরি করার কথা যা মান দিয়ে যেকোন পরিমাণে চেইন করা যেতে পারে। এবং অপারেশন বিকল্পভাবে
মান নিম্নলিখিত স্ট্রিংগুলির মধ্যে একটি হতে পারে -
→ 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