Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

有理数の配列を合計し、JavaScriptで最も単純な形式で結果を返す


問題

それぞれ2つの数値を持つ正確に2つのサブ配列の配列を受け取るJavaScript関数を作成する必要があります。

両方のサブ配列は、分数形式の有理数を表します。この関数は、有理数を追加し、追加された有理数の最も単純な形式を表す2つの数値の新しい配列を返す必要があります。

以下はコードです-

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]

  1. 10進数のビットを反転し、JavaScriptで新しい10進数を返す

    問題 10進数を受け取り、それを2進数に変換し、その1ビットを0に、0を1に反転し、このように形成された新しい2進数に相当する10進数を返すJavaScript関数を作成する必要があります。 例 以下はコードです- const num = 45657; const reverseBitsAndConvert = (num = 1) => {    const binary = num.toString(2);    let newBinary = '';    for(let i = 0; i < bi

  2. JavaScriptの入力配列から最後のn個の偶数を含む配列を返す

    問題 最初の引数として数値の配列を取り、2番目の引数として数値を受け取るJavaScript関数を作成する必要があります。 この関数は、入力配列に存在する最後のn個の偶数の配列を選択して返す必要があります。 例 以下はコードです- const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; const num = 3; const pickEvens = (arr = [], num = 1) => {    const res = [];    for(let index = arr.length - 1; index