Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ฟังก์ชันที่หารูปแบบเศษส่วนรวมที่ง่ายที่สุดใน JavaScript


เรามีอาร์เรย์แบบนี้ -

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 ]