首页 > 解决方案 > 为什么手机拒绝读取 Math.max 值?

问题描述

长话短说,我一直在为一个客户开发一个全栈网站,我已经完成了,但是我有一个问题!

出于某种原因,当我使用 时Math.max(...shipArray),它会在 PC 上正常工作,但当您尝试在移动设备上查看时。它返回 NaN,这也会影响shoppingTotal!

无论如何,这是我的代码:

    const shippingCost = () => {
    const basket = JSON.parse(window.localStorage.getItem("productData"));
    const shipArray = [];
    let shippingTotal = 0;
    if(!basket)
    setBasketEmpty(true);

    basket.map((item, key) => {
        shipArray.push(item.product.shipping_cost);
    });

    console.log(shipArray)

    shippingTotal = shippingTotal + Math.max(...shipArray);
    updateShoppingTotal(shippingTotal);
}


    const updateShoppingTotal = (shipping) => {
    var tempCost = 0;
    var finalCost = 0;
    var tempCostArray = [];
    var quantity = window.localStorage.getItem("productData");
    if(!storageData)
    setBasketEmpty(false);

    if(quantity){
        JSON.parse(quantity).map(quan => {
            tempCost = quan.product.product_price * quan.quantity;
            tempCostArray.push(tempCost);
    });

    tempCostArray.forEach(item => {
        if(!isNaN(item)){
            finalCost = finalCost + item + shipping;
        }
    });

    setShipping(shipping);
    window.localStorage.setItem("originalPrice", parseFloat(finalCost).toFixed(2));
    window.localStorage.setItem("basketTotal", parseFloat(finalCost).toFixed(2))
    setShoppingTotal(parseFloat(finalCost).toFixed(2))
}
}

我也在使用 ReactJS,而不是 React-Native。

谢谢

编辑:为了安全起见,我尝试手动输入一些随机数,这似乎是shipArray问题所在,所以如果有人知道为什么它可能会在数组中添加一个非数字,那将是有帮助!

标签: javascriptarraysreactjsmathmobile-devices

解决方案


这可能是传播操作...

如果您在旧手机上进行测试(尤其是那些廉价的“刻录机”TracFones 之类的东西),那么它们没有很多现代 JS 功能(很确定没有传播,没有箭头功能,甚至可能没有让?)。

我曾经为那些和很多你不能使用的现代 JS 东西开发。他们通常运行 Android 4.4 或更早版本。

一个很好的资源是我可以使用(链接到价差)。您会注意到 Android 4.4 不支持该功能

编辑:如果这段代码被 Babel 编译,它可能会用更老派的东西代替这种东西。


推荐阅读