在什么情况下,应该.deep.equal失败,但使用JSON.stringify进行比较工作正常
What are the cases when should.deep.equal fails but comparison using JSON.stringify works fine?
函数返回一个对象数组。当我使用JSON.stringify
将实际结果与预期结果进行比较时,值是相同的。但是,使用 should.deep.equal
或 _.isEqual
进行比较会失败。有人遇到过这样的问题吗?
我已经意识到问题是什么。这是由于JSON.stringify
错过了具有undefined
值的字段。例如,将JSON.stringify
应用于以下对象的结果{field: 'value', undefinedField: undefined}
{"field": "value"}
。因此
JSON.stringify({field: 'value', undefinedField: undefined}) === JSON.stringify({field: 'value'})`
但
{field: 'value', undefinedField: undefined}.should.deep.equal({field: 'value'})
失败
相关文章:
- 比较从函数和生成的日期对象
- 如何使用 node.js 比较两个 json 数组
- jQuery自定义验证比较多个输入的序列
- 反向字符串比较
- 通过JSON&比较时间
- 将DOM节点值与字符串Javascript进行比较
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 递归深度比较
- 可以't在JavaScript中比较两个字符串
- 为什么JSON.stringify没有序列化原型值
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 尝试JSON.stringify Ember模型时Id丢失
- 如何在moment.js中只比较日期
- 无法比较javascript变量
- 比较javascript中的浮动并更改最高浮动的颜色
- 使用javascript比较对象中的对象值和数组长度
- 如何将smarty变量与javascript变量进行比较
- 比较两个数组中的元素
- 在什么情况下,应该.deep.equal失败,但使用JSON.stringify进行比较工作正常
- 使用JSON可以吗?Stringify用于深度比较和克隆