JavaScript 将分数化简为最简形式

JavaScript 将分数化简为最简形式

如果分子和分母之间没有公共因子(除了1),则分数被化简。例如,4/6没有被化简,因为4和6都有2作为因子。如果不恰当的分数可以转化为整数,使用JavaScript有两种可能的方法来化简分数:

  • 使用math.js的simplify()函数
  • 使用JavaScript的_.reduce()函数

以下示例将说明这两种方法:

使用math.js的simplify()函数

在这个函数中,应用了一些规则到表达式中,你可以根据自己的需求创建自定义规则。基本上,这个函数就像一个lambda函数,在其中可以制定规则。

程序:

// main function 
function simplify(str) { 
    var result = '', data = str.split('/'), 
        numOne = Number(data[0]), 
        numTwo = Number(data[1]); 
    for (var i = Math.max(numOne, numTwo); i > 1; i--) { 
    if ((numOne % i == 0) && (numTwo % i == 0)) { 
        numOne /= i; 
        numTwo /= i; 
    } 
    } 
    if (numTwo === 1) { 
    result = numOne.toString() 
    } else { 
    result = numOne.toString() + '/' + numTwo.toString() 
    } 
    return result 
} 
console.log(simplify("4/6")); 
  
console.log(simplify(84810,985612));

输出:

2/3
42405/492806

使用JavaScript的_.reduce()函数

_.reduce()是JavaScript中的内置函数,用于将数组/对象的属性转换为单个值,或者用于从给定的值列表创建单个结果。当将列表的所有元素传递给函数/迭代,并且没有更多的元素剩下时,_.each循环结束。在这里,我们将找到这些数字的最大公约数,除以最大公约数,我们可以使输出更简单。

程序:

// Simplified fraction by finding the GCD and dividing by it. 
function reduce(number,denomin){ 
var gcd = function gcd(a,b){ 
    return b ? gcd(b, a%b) : a; 
}; 
gcd = gcd(number,denomin); 
return [number/gcd, denomin/gcd]; 
} 
  
console.log(reduce(15,20)); 
  
console.log(reduce(84810,985612));

输出:

3,4
42405,492806

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程