加减法
function CalculateFraction(fractionList) {
if (fractionList && fractionList.length > 0) {
//分子
let molecule = 0;
//分母
let denominator = 0;
//分子集合
let molecules = [];
//分母集合
let denominators = [];
fractionList.forEach(item => {
if (item.indexOf("/") > -1) {
let i = item.indexOf("/");
molecules.push(item.substring(0, i));
denominators.push(item.substring(i + 1, item.length));
}
});
//循环分母找出最小公倍数
let pre = parseInt(denominators[0]);
let multiple = pre;
for (var j = 1; j < denominators.length; j++) {
let n = parseInt(denominators[j]);
multiple = pre > n ? pre : n;
while (multiple <= pre * n) {
if (multiple % pre == 0 && multiple % n == 0) {
break;
}
multiple++;
}
pre = multiple;
}
denominator = multiple;
//循环计算分子相加/相减
for (var k = 0; k < molecules.length; k++) {
//加法
molecule += molecules[k] * (denominator / denominators[k]);
//减法
//molecule -= molecules[k] * (denominator / denominators[k]);
};
//结果判断 分子不能小于分母
return molecule + "/" + denominator;
// if (molecule < denominator) {
// return false;
// }
// return true;
}
}
//测试代码
var list = ['1/3', '1/4', '1/5','1/6'];
console.log(CalculateFraction(list));
执行结果: 57/60