이전과 JSON 개체의 수정 후 속성과 값을 확인

어떤 이유로, 너무 오래, 최초의 기록 경험, 일부 수치에 대한 작업은 다음 레코드가 더 나은 생각, 우리는 지금, 말을 많이하지 않았다.
이러한 배경 수요가 내가 필요 전과 나열된 항목을 수정 변경, 후 비교하는 양식을 저장, 지금이 폼 양식 항목에 특정 데이터를 변경 한 생각, 내가 양식을 가지고, 양식 객체 등, STR, OBJ, 배열을 가지고있다, 특정 작업을 트리거합니다.
방법은 다음과 같습니다

  1  // 对比JSON数据
  2 내보내기 기능 equalsWithA (오브젝트 1, object2) {
   3    VAR의 changeField = []
   (4)    에 대해 ( VAR의 PROPNAME 에서 오브젝트 1) {
   도 5      의 경우 (! 오브젝트 1 [PROPNAME] &&! object2 [PROPNAME]) {
   (6)는        계속 
  7      }
   8      의 경우 (object1.hasOwnProperty (PROPNAME)! = object2.hasOwnProperty (PROPNAME) || 대해서 typeof 오브젝트 1 [PROPNAME!] == 대해서 typeof object2 [PROPNAME]) {
   9        changeField.push (PROPNAME)
 10       계속 
11      }
 12      의 경우 (오브젝트 1 [PROPNAME] instanceof를 배열) {
 13 일        경우 (! arrayEquals가 (오브젝트 1 [PROPNAME] object2는 [PROPNAME])) {
 14          changeField.push (PROPNAME)
 (15)가          계속 
16        }
 17      } 다른  경우 (오브젝트 1 [ PROPNAME] instanceof를 &&는 [PROPNAME] object2 개체 instanceof는 개체)를 {
 (18)가        있는 경우 (! jsonEquals가 (오브젝트 1 [PROPNAME] object2는 [PROPNAME])) {
 19          changeField.push (PROPNAME)가
 20          계속 
21       }
 22      } 다른  경우 ( 대해서 typeof 오브젝트 1 [PROPNAME] === '문자열'&& 대해서 typeof object2 [PROPNAME] === '문자열' ) {
 23        시도 {
 24          VAR의 D1 = '
 25          VAR의 D2 ='
 26          의 경우 (PROPNAME .indexOf ( 'ENDTIME')> -1 || propName.indexOf ( '상영')> -1 ) {
 27            D1 = formatDate (오브젝트 1 [PROPNAME])
 (28)            , D2 = formatDate (object2 [PROPNAME])
 (29)          } 다른 {
 30            D1 =오브젝트 1 [PROPNAME]
 31            D2 = object2 [PROPNAME]
 32          }
 33  
34          경우 (D1의 &&의 D2) {
 35            의 경우 (D1! = D2) {
 36              // 日期类型
37              changeField.push (PROPNAME)
 (38)            }
 (39)는            계속 
40          } 다른  경우 (오브젝트 1 [PROPNAME]! = object2 [PROPNAME]) {
 41            changeField.push (PROPNAME)
 (42)가            계속 
43          }
 44        } 캐치(E)} {
 45      } 다른  경우 (!는 오브젝트 1 [PROPNAME] = [PROPNAME] object2) {
 46        changeField.push (PROPNAME)
 (47)        를 계속 
48      }
 49    }
 50    반환 changeField
 51  };
52  함수 arrayEquals (오브젝트 1, object2) {
 53    의 경우 (object1.length! = object2.length) {
 54      반환  거짓 
55    }
 56    object1.sort ()
 57    object2.sort ()
 58     ( VAR난 = 0; 난 object1.length를 <; 난 ++ ) {
 59      의 경우 ( 대해서 typeof 오브젝트 1 [I]! == 대해서 typeof object2 [I]) {
 60        반환  거짓 
(61)      }
 (62)      의 경우 (오브젝트 1 [I] instanceof를 배열 && object2 [I] instanceof를 배열) {
 63        의 경우 (! arrayEquals ( 오브젝트 1 [I] object2 [I])) {
 64          반환  거짓 
65        }
 66      } 다른  경우 (isJson (오브젝트 1 [I]) && isJson (object2 [I])) {
 67        의 경우 (!jsonEquals (오브젝트 1 [I] object2 [I])) {
 68          반환  거짓 
69        }
 70      } 다른  경우 (오브젝트 1 [I] =! object2 [I]) {
 71        반환  거짓 
72      }
 73    }
 74    반환  사실 
75  };
76  함수 jsonEquals (오브젝트 1, object2) {
 77     ( VAR의 PROPNAME 에서 오브젝트 1) {
 78      경우 (! 오브젝트 1 [PROPNAME] &&! object2 [PROPNAME]) {
 79        계속 
80      }
81      의 경우 (object1.hasOwnProperty (PROPNAME)! = object2.hasOwnProperty (PROPNAME) || 대해서 typeof 오브젝트 1 [PROPNAME!] == 대해서 typeof object2 [PROPNAME]) {
 82        반환  거짓 
(83)      }
 (84)      의 경우 (오브젝트 1 [PROPNAME] instanceof를 배열) {
 85        의 경우 (! arrayEquals (오브젝트 1 [PROPNAME] object2 [PROPNAME])) { 반환  거짓 }
 86      } 다른  경우 (isJson (오브젝트 1 [PROPNAME])) {
 87        의 경우 (! jsonEquals (오브젝트 1 [PROPNAME] object2 [PROPNAME] )) { 반환  거짓 }
 (88)     } 다른  경우 ( 대해서 typeof 오브젝트 1 [PROPNAME] === '문자열'&& 대해서 typeof object2 [PROPNAME] === '문자열' ) {
 89        시도 {
 90          VAR의 D1 = '
 91          VAR의 D2 ='
 92          의 경우 (propName.indexOf ( 'ENDTIME')> -1 || propName.indexOf ( '상영')> -1 ) {
 93            D1 = formatDate (오브젝트 1 [PROPNAME])
 (94)            , D2 = formatDate (object2 [PROPNAME])
 95          } 다른 {
 96            D1 = 오브젝트 1 [PROPNAME]
 97           D2 = object2 [PROPNAME]
 98          }
 99          의 경우 (D1 && D2 && D1! = D2) {
 100            // 日期类型
101             거짓 
102          } 다른  경우 (오브젝트 1은 [PROPNAME]! = object2 [PROPNAME]) {
 103             거짓 
104          }
 105        } 캐치 (E)} {
 106      } 다른  경우 (오브젝트 1 [PROPNAME]! = object2 [PROPNAME]) {
 107         거짓 
108      }
 109    }
110    복귀  사실 
(111)  };
112  함수 isJson (OBJ) {
 113    VAR의 isjson = 대해서 typeof (OBJ) === '물체'&& Object.prototype.toString.call (OBJ) .toLowerCase () == '[대상 객체] &&! obj.length
 114    isjson
 115 }

메소드를 호출

   VAR arrChange = equalsWithA (oldFormData, newFormData);   

추천

출처www.cnblogs.com/xiami2104/p/11783104.html