আমাদের কাছে একটি অ্যারে অফ অ্যারে আছে যেন −
const arr = [[12, 56], [3, 45], [23, 2], [2, 6], [2, 8]];লক্ষ্য করুন যে অ্যারে যেকোনো সংখ্যক উপাদান থাকতে পারে, কিন্তু প্রতিটি সাব-অ্যারে স্ট্রিক্টলি দুটি সংখ্যা ধারণ করবে।
প্রতিটি সাব-অ্যারেতে দুটি সংখ্যা একটি ভগ্নাংশ নির্দেশ করে। উদাহরণস্বরূপ, প্রথম সাব-অ্যারেটি 12/56, দ্বিতীয়টি 3/45 ইত্যাদি।
একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে নেবে এবং সব সাব-অ্যারে দ্বারা প্রতিনিধিত্বকৃত ভগ্নাংশগুলোর যোগফল ভগ্নাংশ রূপে (দশমিকে রূপান্তর না করে) হিসাব করবে। ফলাফল দুটি উপাদান বিশিষ্ট একটি অ্যারে হিসেবে রিটার্ন করবে।
উদাহরণ
নিচে কোডটি দেওয়া হল −
const arr = [[12, 56], [3, 45], [23, 2], [2, 6], [2, 8]]; const gcd = (a, b) => { let num = 2, res = 1; while(num <= Math.min(a, b)){ if(a % num === 0 && b % num === 0){ res = num; }; num++; }; return res; } const sumFrac = (a, b) => { const aDenom = a[1], aNumer = a[0]; const bDenom = b[1], bNumer = b[0]; let resDenom = aDenom * bDenom; let resNumer = (aDenom*bNumer) + (bDenom*aNumer); const greatestDivisor = gcd(resDenom, resNumer); return [resNumer/greatestDivisor, resDenom/greatestDivisor]; }; const sumArrayOfFractions = arr => { return arr.reduce((acc, val) => sumFrac(acc, val)); };আউটপুট
কনসোলে নিচের আউটপুট দেখা যাবে −
[ 1731, 140 ]