should.deep.equal 失败但使用 JSON.stringify 比较工作正常的情况是什么?

What are the cases when should.deep.equal fails but comparison using JSON.stringify works fine?

一个函数returns一个对象数组。当我使用 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'})

失败