Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

유리수의 합계 배열 및 JavaScript에서 가장 간단한 형태로 결과 반환

<시간/>

문제

각각 두 개의 숫자가 있는 정확히 두 개의 하위 배열로 구성된 배열을 취하는 JavaScript 함수를 작성해야 합니다.

두 하위 배열은 분수 형식의 유리수를 나타냅니다. 우리 함수는 유리수를 더하고 더해진 유리수의 가장 단순한 형태를 나타내는 두 개의 숫자로 구성된 새로운 배열을 반환해야 합니다.

예시

다음은 코드입니다 -

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));

출력

다음은 콘솔 출력입니다 -

[5, 6]