আমাদের একটি ফাংশন লিখতে হবে, নাম ধরি calculator() যা চারটি ক্যারেক্টরের যেকোনো একটি (+, -, *, /) প্রথম আর্গুমেন্ট হিসেবে নিবে এবং তারপর যেকোনো সংখ্যক নাম্বার লিটারেল। আমাদের কাজ হলো প্রথম আর্গুমেন্টে নির্দিষ্ট অপারেশনটি সেসব নাম্বারের ওপর পারফর্ম করে রেজাল্ট রিটার্ন করা।
যদি অপারেশন গুণ বা যোগ হয়, তবে আমাদের সেসব এলিমেন্টের সাথে একই অপারেশন করতে হবে। কিন্তু যদি অপারেশন বিয়োগ বা ভাগ হয়, তবে প্রথম এলিমেন্টকে নিউট্রাল ধরে বাকি সব এলিমেন্ট সেটি থেকে বিয়োগ করতে হবে বা সেটিকে বাকি সব দিয়ে ভাগ করতে হবে অপারেশনের ভিত্তিতে।
তাহলে এই ফাংশনের কোড লিখি -
উদাহরণ
const calculator = (operation, ...numbers) => { const legend = '+-*/'; const ind = legend.indexOf(operation); return numbers.reduce((acc, val) => { switch(operation){ case '+': return acc+val; case '-': return acc-val; case '*': return acc*val; case '/': return acc/val; }; }); }; console.log(calculator('+', 12, 45, 21, 12, 6)); console.log(calculator('-', 89, 45, 21, 12, 6)); console.log(calculator('*', 12, 45, 21, 12, 6)); console.log(calculator('/', 189000, 45, 7, 12, 4));আউটপুট
কনসোলে আউটপুট হবে -
96 5 816480 12.5