/** * 判断两数组是否相同 * @param news 新数据 * @param old 源数据 * @returns 两数组相同返回 `true`,反之则反 */ export function judementSameArr(news: Array, old: Array): boolean { let count = 0; const leng = old.length; for (let i in old) { for (let j in news) { if (old[i] === news[j]) count++; } } return count === leng ? true : false; } /** * 判断两个对象是否相同 * @param a 要比较的对象一 * @param b 要比较的对象二 * @returns 相同返回 true,反之则反 */ export function isObjectValueEqual(a: { [key: string]: any }, b: { [key: string]: any }) { if (!a || !b) return false; let aProps = Object.getOwnPropertyNames(a); let bProps = Object.getOwnPropertyNames(b); 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]; if (!b.hasOwnProperty(propName)) return false; if (propA instanceof Object) { if (!isObjectValueEqual(propA, propB)) return false; } else if (propA !== propB) { return false; } } return true; }