javascript - 如何在javascript中计算配方成分计数器?
问题描述
我正在尝试通过服务计数来计算成分的数量。但是,我实现的计数器不支持分数值,例如 3/4 茶匙、2 1/2 茶匙。这是示例代码:
var gcd = function(a, b) {
if (b < 0.0000001) return a;
return gcd(b, Math.floor(a % b));
};
const decimalToFraction = ( ) => {
var fraction = result;
var len = fraction.toString().length - 2;
var denominator = Math.pow(10, len);
var numerator = fraction * denominator;
var divisor = gcd(numerator, denominator);
numerator /= divisor;
denominator /= divisor;
console.log(Math.floor(numerator) + '/' + Math.floor(denominator));
}
const stringToDecimal = (parseQuantity) => {
let split = parseQuantity.split('/');
let result = parseInt(split[0], 10) / parseInt(split[1], 10);
return result;
}
const serveQuantity = (count) =>{
let listOfIngredients=[];
if(count<1 && serve >= 1){
setServe(serve => serve-1);
listOfIngredients =ingredients.map((item,index)=>{
if(quantity[index] < 1){
item.quantity._text = item.quantity._text - parseInt(quantity[index]);
}else{
item.quantity._text = parseInt(item.quantity._text) - parseInt(quantity[index]);
}
return item;
})
}
if(count===1 && serve >= 1){
setServe(serve => serve+1);
listOfIngredients = ingredients.map((item, index)=>{
if(quantity[index] < 1){
item.quantity._text = item.quantity._text + parseInt(quantity[index]);
}else{
item.quantity._text = parseInt(item.quantity._text) + parseInt(quantity[index]);
}
return item;
})
}
setIngredients(listOfIngredients);
}
当用户点击服务+/-
按钮时,我正在调用serveQuantity(2)
函数。
解决方案
推荐阅读
- html - 如何在 apexcharts 的数据属性中传递变量
- ios - 如何解决像“NULL cString”这样的崩溃?
- php - 如何使用 laravel 黄昏浏览器测试测试页眉标签,如元标签、描述等?
- css - 表的第一列跳出溢出-y:auto;
- keras - 具有 cRelu 激活的 Keras 序列模型
- javascript - 生成一系列按顺序运行的 Promise
- java - 兼容性 jhipster 微服务 4.6.0 & 5.2.1 & 6.xx
- react-native - 如何防止在 react-native 中的 addEventListener 期间调用侦听器方法
- cocoa - 在 tableView(_:heightOfRow:) 中获取 NSTableCellView
- c# - 从服务器 C# 下载 Zip 文件时已损坏