comparedeep.ts (534B)
1 export function compareDeep(a: any, b: any) { 2 if (a === b) return true 3 if (!(a && typeof a == "object") || 4 !(b && typeof b == "object")) return false 5 let array = Array.isArray(a) 6 if (Array.isArray(b) != array) return false 7 if (array) { 8 if (a.length != b.length) return false 9 for (let i = 0; i < a.length; i++) if (!compareDeep(a[i], b[i])) return false 10 } else { 11 for (let p in a) if (!(p in b) || !compareDeep(a[p], b[p])) return false 12 for (let p in b) if (!(p in a)) return false 13 } 14 return true 15 }