如何比较Angular中的两个对象而不使用对象的引用

Kar*_*nde 3 typescript angular

打字稿如何比较两个对象?

originaltraits:{
artistic:25,
athletic:24,
goodLooks:70,
happiness:0,
health:81
}
newtraits:{
artistic:25,
athletic:24,
goodLooks:70,
happiness:0,
health:81
}
Run Code Online (Sandbox Code Playgroud)

我有这两个对象我想比较这些对象的字段而不是在Angular中使用对象引用然后如何比较?

为什么两个相等的对象在Angular 2中显示"不相等"

Ric*_*III 19

您可以使用JSON.stringify()比较对象,假设您具有相同的对象属性顺序.即:

JSON.stringify(obj1).toLowerCase() === JSON.stringify(obj2).toLowerCase();
Run Code Online (Sandbox Code Playgroud)

  • 这种方法的问题在于,对象`{Foo=1, Bar =123}` 不等于对象`{Bar =123, Foo=1}`,一些排序会有所帮助。 (3认同)

Jos*_*ora 2

如果您需要在项目中进行更多这样的比较,我强烈建议您使用像 deep-equal 这样的库:

https://www.npmjs.com/package/deep-equal

它有与 TypeScript 一起使用的类型:

https://www.npmjs.com/package/@types/deep-equal