如何判断两个对象是否相等
=== 不行 这个判断的引用地址~
JSON.stringfy 不行
- 因为函数和 symbol 无法被转换~
- 如果对象中有两个相同的属性,只是他们的位置不同,则会被误判
粗暴递归
- 判断对象属性长度是否一样
- for 循环,判断 A 对象里是否包含 B 的属性
- 判断 A 对象的属性值是否为对象,如果是,再进行以上循环
- 判断 A 的属性值是否等于 B 的属性值
Lodash - isEqual(value,other)
- 注意: 这个方法支持比较 arrays, array buffers, booleans, date objects, error objects, maps, numbers,
Object
objects, regexes, sets, strings, symbols, 以及 typed arrays.Object
对象值比较自身的属性,不包括继承的和可枚举的属性。 不支持函数和 DOM 节点比较。
- 注意: 这个方法支持比较 arrays, array buffers, booleans, date objects, error objects, maps, numbers,
Lodash - isEqualWith(value, other, [customizer])
- 接受一个
customizer
用来定制比较值.((objValue, othValue [, index|key, object, other, stack]))
- 接受一个