Javascript 当should.deep.equal失败但使用JSON.stringify进行比较可以正常工作时,会出现什么情况?

Javascript 当should.deep.equal失败但使用JSON.stringify进行比较可以正常工作时,会出现什么情况?,javascript,angularjs,unit-testing,chai,should.js,Javascript,Angularjs,Unit Testing,Chai,Should.js,函数返回一个对象数组。当我使用JSON.stringify将实际结果与预期结果进行比较时,值是相同的。但是,使用应.deep.equal或\uq.isEqual进行比较失败。有人遇到过这样的问题吗?我已经意识到问题所在。这是由于JSON.stringify遗漏了未定义值的字段。例如,将JSON.stringify应用于以下对象{field:'value',undefinedField:undefined}的结果是{“field”:“value”}。因此 JSON.stringify({field

函数返回一个对象数组。当我使用
JSON.stringify
将实际结果与预期结果进行比较时,值是相同的。但是,使用
应.deep.equal
\uq.isEqual
进行比较失败。有人遇到过这样的问题吗?

我已经意识到问题所在。这是由于
JSON.stringify
遗漏了
未定义值的字段。例如,将
JSON.stringify
应用于以下对象
{field:'value',undefinedField:undefined}
的结果是
{“field”:“value”}
。因此

JSON.stringify({field: 'value', undefinedField: undefined}) === JSON.stringify({field: 'value'})`
但是


失败

能否向您的问题中添加一些示例对象?我不熟悉
should.js
,但他们是否可能不仅检查值,还检查引用?下划线问题似乎与相同。
{field: 'value', undefinedField: undefined}.should.deep.equal({field: 'value'})