is-obj-equal.ts 666 Bytes
Newer Older
hucy's avatar
hucy committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
/**
 * 判断两个对象是否相等
 **/
export const isObjEqual = function (obj1: any, obj2: any) {
  const keys1 = Object.keys(obj1);
  const keys2 = Object.keys(obj2);

  if (keys1.length === keys2.length) {
    const sortKeys1 = keys1.sort();
    const sortKeys2 = keys2.sort();

    const sortStr1 = JSON.stringify(sortKeys1);
    const sortStr2 = JSON.stringify(sortKeys2);

    if (sortStr1 === sortStr2) {
      let flag = true;
      for (const key1 in obj1) {
        if (obj1[key1] !== obj2[key1]) {
          flag = false;
          break;
        }
      }
      return flag;
    } else {
      return false;
    }
  } else {
    return false;
  }
};