h***@geely.com
h***@geely.com
  • 发布:2023-12-29 10:50
  • 更新:2024-01-02 16:57
  • 阅读:225

【报Bug】 数字经过JSON.stringify 和JSON.parse转换之后类型异常

分类:uni-app x

产品分类: uni-app x/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 13.3.1

HBuilderX版本号: 3.99

手机系统: Android

手机系统版本号: Android 14

手机厂商: 小米

手机机型: 小米 14

示例代码:

type P = {
x : number
y : number
}
const s = JSON.parse<P[]>(JSON.stringify([{ x: 0, y: 0 }])) as P[]
s[0].x += 0;
const clearList = s.map((v : P, _, _a) : number => v.x)
console.log( clearList.includes(0));

操作步骤:

如代码所示

预期结果:

打印 true

实际结果:

打印 false

bug描述:

通过JSON.parse 和JSON.stringify 双重转换后 数字类型出现异常。

2023-12-29 10:50 负责人:DCloud_Android_DQQ 分享
已邀请:
DCloud_Android_DQQ

DCloud_Android_DQQ

bug 已确认

这个问题在于 include 函数在web 平台不区分 0.0和0 的情况。 目前UTS是区分的。

这个问题稍后会修复

爱豆豆

爱豆豆 - 办法总比困难多

clearList这个变量哪来的 发完整的代码片段看下

  • h***@geely.com (作者)

    不好意思,我修改了一下代码

    2023-12-29 11:07

  • 爱豆豆

    回复 h***@geely.com: 确实只要JSON转了之后 在+= 就会变成0.0 导致includes查询不到

    还是邀请官方人员看看吧

    2023-12-29 11:37

要回复问题请先登录注册