写一些测试用例我的JavaScript程序二进制而现在我只是用字符串化交易,以检查是否值和预期值相等:检查两个对象是否具有浮点值时是否相等?
JSON.stringify(val) === JSON.stringify(expected)
这个工程除了当我已经浮精点值。这是发生了什么:
Given Value: [10,20,30,32.400001525878906,{"test":3,"asdf":23}]
Expected Value: [10,20,30,32.4,{"test":3,"asdf":23}]
Test Failed!
所以我想我不能使用字符串化了检查我的两个对象/数组相等。检查两个潜在深度嵌套的对象/数组是否相等,同时考虑浮点值又是什么方法?也就是说,如果两个浮点数值相同或不相等,则99.99%应视为相等。
你需要写一个递归等价测试器。当它达到浮点数时,它需要将它们与容差进行比较,而不是'=='。 – Barmar
使用JSON.stringify比较对象不是一个好主意,因为不能保证顺序,所以两个对象可能具有相同的属性和值,但评估为不“相等”。你需要遍历的属性和值,有[*许多,许多问题已经*](http://stackoverflow.com/search?q=%5Bjavascript%5D+compare+objects)。 – RobG