हमारे पास सरणियों की एक सरणी है जैसे:
const arr = [[12, 56], [3, 45], [23, 2], [2, 6], [2, 8]];
ध्यान दें कि जबकि सरणी में कितने भी तत्व हो सकते हैं, प्रत्येक उपसरणी में सख्ती से दो संख्याएँ होनी चाहिए।
प्रत्येक उपसरणी में दो संख्याएँ एक भिन्न को दर्शाती हैं। जैसे पहली उपसरणी द्वारा दर्शाया गया भिन्न 12/56 है, दूसरी द्वारा 3/45 और इसी तरह।
हमें एक JavaScript फ़ंक्शन लिखना होगा जो ऐसी एक सरणी लेता है और सभी उपसरणियों द्वारा दर्शाए गए भिन्नों का योग निकालता है।
हमें योग की गणना भिन्न रूप में करनी है (यानी, उन्हें दशमलव में बदले बिना)।
और योग को दो तत्वों की सरणी के रूप में लौटाना है जो परिणामी भिन्न को दर्शाता है।
इसलिए, आइए इस फ़ंक्शन के लिए कोड लिखते हैं:
उदाहरण
इसका कोड निम्नलिखित होगा:
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));
};
console.log(sumArrayOfFractions(arr));
आउटपुट
कंसोल में आउटपुट होगा:
[ 1731, 140 ]