为什么手机拒绝读取 Math.max 值?

Why Do Mobile Phones refuse to read Math.max values?

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

出于某种原因,当我使用 Math.max(...shipArray) 时,它可以在 PC 上正常运行,但当您尝试在移动设备上查看时。它 returns 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 确实是问题所在,所以如果有人知道为什么要添加一个数组中的非数字将很有帮助!

可能是散布操作...

如果您在旧手机上进行测试(尤其是那些便宜的“燃烧器”TracFones),那么它们没有很多现代 JS 功能(很确定没有传播,没有箭头功能,甚至可能没有让?)。

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

一个很好的资源是 can I use(link 传播)。您会注意到 Android 4.4

不支持

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

如果我有大脑我会很危险!哈哈

所以为了查看产品,我有 2 个组件,一个用于较大的设备,一个用于移动设备。

对于第一个组件,我将运费添加到 localStorage 但我没有为移动组件这样做,所以当我尝试在移动设备上阅读 item.product.shipping_cost 时,它当然不能发现它是这样说 undefined.

这里的血腥台词: oldBasket.push({product: {shipping_cost:this.state.productData.shipping_cost,});

该行不在移动组件上!

感谢大家的指教