diff --git a/src/utils/arrayOperation.ts b/src/utils/arrayOperation.ts index 08c8c31a886350a9fed0862907cda9bf0fb0bd93..9ba7968b39f5fc7db421165f11652e00d3106b23 100644 --- a/src/utils/arrayOperation.ts +++ b/src/utils/arrayOperation.ts @@ -30,13 +30,17 @@ export function isObjectValueEqual(a: T, b: T): boolean { if (aProps.length != bProps.length) return false; for (let i = 0; i < aProps.length; i++) { let propName = aProps[i]; - let propA = a[propName]; - let propB = b[propName]; + let propA = (a as any)[propName]; + let propB = (b as any)[propName]; if (!b.hasOwnProperty(propName)) return false; if (propA instanceof Object) { if (!isObjectValueEqual(propA, propB)) return false; } else if (propA !== propB) { - return false; + if (!(Number.isNaN(propA) && Number.isNaN(propB))) { + return false; + } else { + throw new Error('NaN 不能比较'); + } } } return true;