Fix `isDeepEqual` function
This commit is contained in:
parent
f67d9642be
commit
27c9d8d570
|
@ -1,7 +1,29 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if two arrays are the same:
|
||||||
|
* Adapted from https://stackoverflow.com/a/16436975/13989043
|
||||||
|
* @param {any[]} a
|
||||||
|
* @param {any[]} b
|
||||||
|
* @returns {boolean} True if the arrays are equal, false if not
|
||||||
|
*/
|
||||||
|
function arraysEqual(a, b) {
|
||||||
|
if (a === b) return true;
|
||||||
|
if (a == null || b == null) return false;
|
||||||
|
if (a.length !== b.length) return false;
|
||||||
|
|
||||||
|
for (let i = 0; i < a.length; ++i) {
|
||||||
|
if (a[i] !== b[i]) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
export function isDeepEqual(obj1, obj2, {
|
export function isDeepEqual(obj1, obj2, {
|
||||||
tol = 1e-3
|
tol = 1e-3
|
||||||
} = {}) {
|
} = {}) {
|
||||||
|
if (Array.isArray(obj1) && Array.isArray(obj2)) {
|
||||||
|
return arraysEqual(obj1, obj2);
|
||||||
|
}
|
||||||
|
|
||||||
// Get the keys of both objects
|
// Get the keys of both objects
|
||||||
const obj1Keys = Object.keys(obj1);
|
const obj1Keys = Object.keys(obj1);
|
||||||
const obj2Keys = Object.keys(obj2);
|
const obj2Keys = Object.keys(obj2);
|
||||||
|
|
Loading…
Reference in New Issue