A fraction is simplified if there are no common factors (except 1) between the numerator and the denominator. For example, 4/6 is not simplified, since 4 and 6 both share 2 as a factor. If improper fractions can be transformed into integers. There are two possible ways to simplify the fraction by using JavaScript.
The below examples will illustrate the approach:
Using math.js simplify() function: In this function, few rules are applied to the expression, you can create your own custom-made rules. Basically, this function is like a lambda function. Where you can make the rules according to your requirements
Program:
javaScript
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));
|
Output:
2/3
42405/492806
Using JavaScript _.reduce() function: The _.reduce() is an inbuilt function in JavaScript which is used to transform an array’s / object’s properties into one single value or is used to create a single result from a given list of values. When all the elements of the list are passed to the function/iterate and no more elements remain then the _.each loop ends. Here we will find the GCD of those numbers and dividing it by GCD we can make the output simpler.
Program:
Javascript
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));
|
Output:
3,4
42405,492806