假设我有一个包含许多嵌套对象和名为credential
的变量的对象:
将这两个对象一次性差异化的最佳方法是什么? .e.g accountName
(字符串),isNew
(布尔)变量,依此类推。
我尝试了“复制值”,然后“将值与剪贴板进行比较”,但它只能比较单个文本变量。 “查看文字”是一样的。
我也试过“Mark Object ...”,但它的对象会丢失而不是永久存储(重新输入class会覆盖对象):
那么有没有办法比较两个复杂的和嵌套的对象值?
[UPDATE]
我发现我可以按 shift 或 Ctrl + A 突出显示全部然后 Ctrl + <要复制的kbd> C ,但是如果没有逐个展开它们,它仍然不会包含嵌套对象:
[更新2]:
我注意到shadow$__klass_
对象似乎包含自身并导致无限的嵌套属性。但如果我可以排除这个对象名称或限制最大嵌套深度,它可以解决吗?
答案 0 :(得分:1)
您可以开发实用程序方法并将其保存在项目中的某个位置,该项目接受两个对象并在eval表达式调试器窗口中调用它并查看差异。
您可以使用一些反射库或开发自己的反射库,它可以这样工作:通过反射遍历对象字段并构建映射,其中键包含字段的复合路径(fe fieldA.fieldANested.number
)和它有价值。然后,可以非常轻松地比较两个对象的两个映射,您可以在调试器中看到差异