javascript - 为什么手机拒绝读取 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
问题所在,所以如果有人知道为什么它可能会在数组中添加一个非数字,那将是有帮助!
解决方案
这可能是传播操作...
如果您在旧手机上进行测试(尤其是那些廉价的“刻录机”TracFones 之类的东西),那么它们没有很多现代 JS 功能(很确定没有传播,没有箭头功能,甚至可能没有让?)。
我曾经为那些和很多你不能使用的现代 JS 东西开发。他们通常运行 Android 4.4 或更早版本。
一个很好的资源是我可以使用(链接到价差)。您会注意到 Android 4.4 不支持该功能
编辑:如果这段代码被 Babel 编译,它可能会用更老派的东西代替这种东西。
推荐阅读
- python - 将字典中的所有值转换为字符串
- outlook - Outlook 跟踪与 Exchange 与会者响应之间的差异
- java - java pdfbox:解析pdf文件时不需要的页面大小调整
- c - 在 C 中创建多个线程时出现分段错误
- python - python中的SignalR - 你可以托管集线器吗?
- python - 将预测收盘价添加到现有 pandas 数据框的末尾
- java - 在 spring-boot 我们如何确认来自亚马逊 SNS 的订阅请求 HTTP
- asp.net-mvc - 安装应用程序洞察时,它一直在抱怨 DiagnosticSource 包版本
- api - 有没有办法在 curl 中自动检索 cookie
- python - opencv waitKey(0) 无需按键即可触发