हमारे पास इस तरह की सरणियों की एक सरणी है -
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 ]