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

JavaScriptで最も単純な形式の合計分数を見つける関数


このような配列の配列があります-

const arr = [[12, 56], [3, 45], [23, 2], [2, 6], [2, 8]];

配列には任意の数の要素を含めることができますが、各サブ配列には厳密に2つの数値を含める必要があることに注意してください。

各サブアレイの2つの数値は、分数を表します。最初のサブアレイで表される分数が12/56であるように、2番目のサブアレイで表される分数は3/45であり、以下同様です。

このような配列を1つ取り込んで、すべてのサブ配列で表される分数の合計を計算するJavaScript関数を作成する必要があります。

合計を分数形式で計算する必要があります(つまり、小数に変換せずに)。

そして、結果の分数を表す2つの要素の配列として合計を返します。

したがって、この関数のコードを書いてみましょう-

このためのコードは-

になります
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 ]

  1. ボタンをクリックするだけのJavaScriptSum関数

    次がボタンだとしましょう- <button type="button" onclick="addTheValue(10)">Sum </button> </body> ボタンクリック時にパラメーター10を指定して関数addTheValue(10)を呼び出しています。ボタンをクリックすると、次のコードのように値10が追加されます- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="

  2. Arrayクラスのプロトタイプオブジェクトに存在するJavaScript関数

    問題 Arrayクラスのプロトタイプオブジェクトに存在するJavaScript関数を作成する必要があります。この関数はコールバック関数を受け取る必要があり、この関数はコールバック関数がtrueを生成する最初の要素を返す必要があります。 現在の要素と現在のインデックスを、最初と2番目の引数としてコールバック関数にフィードする必要があります。 例 以下はコードです- const arr = [4, 67, 24, 87, 15, 78, 3]; Array.prototype.customFind = function(callback){    for(let i =