首页 > 解决方案 > 如何在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)函数。

标签: javascriptreactjs

解决方案


推荐阅读