Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một mảng đúng hai mảng con hai số mỗi mảng. Cả hai mảng con đại diện cho số hữu tỉ dạng phân số. Hàm sẽ cộng hai số hữu tỉ và trả về mảng mới hai số đại diện cho dạng đơn giản nhất của tổng.
Ví dụ
Dưới đây là mã nguồn:
const arr = [
[1, 2],
[1, 3]
];
const findSum = (arr = []) => {
const hcf = (a, b) => b ? hcf(b, a % b) : a;
if(!arr.length){
return null;
};
const [n, d] = arr.reduce(([a, x], [b, y]) => [a*y + b*x, x*y]);
const g = hcf(n, d);
return g === d ? n / d : [n / g, d / g];
};
console.log(findSum(arr));Kết quả
Kết quả đầu ra trong console:
[5, 6]