给定两个对象 o1 和 o2 ,请你检查它们是否 完全相等 。
对于两个 完全相等 的对象,它们必须包含相同的键,并且相关的值也必须 完全相等 。如果两个对象通过了 === 相等性检查,它们也被认为是 完全相等 的。
你可以假设这两个对象都是 JSON.parse 的输出。换句话说,它们是有效的 JSON 。
请你在不使用 lodash 的 _.isEqual() 函数的前提下解决这个问题。
示例 1:
输入:o1 = {"x":1,"y":2}, o2 = {"x":1,"y":2}
输出:true
输入:键和值完全匹配。
示例 2:
输入:o1 = {"y":2,"x":1}, o2 = {"x":1,"y":2}
输出:true
解释:尽管键的顺序不同,但它们仍然完全匹配。
示例 3:
输入:o1 = {"x":null,"L":[1,2,3]}, o2 = {"x":null,"L":["1","2","3"]}
输出:false
解释:数字数组不同于字符串数组。
示例 4:
输入:o1 = true, o2 = false 输出:false 解释:true !== false
提示:
1 <= JSON.stringify(o1).length <= 1051 <= JSON.stringify(o2).length <= 105maxNestingDepth <= 1000