Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 두 객체를 비교하는 방법은 무엇입니까?

<시간/>

객체는 배열이나 문자열과 다릅니다. 따라서 "===" 를 사용하여 간단히 비교합니다. 또는 "==" 불가능합니다. 여기에서 비교하려면 먼저 문자열화해야 합니다. 개체를 선택한 다음 등호 연산자 사용 개체를 비교할 수 있습니다.

다음 예에서 객체는 stringified() 처음에는 나중에 서로 비교합니다.

예시

<html>
<body>
   <script>
      const obj1 = {Name: "Rahim", City: 'Hyderabad',Country: "India" };
      const obj2 = {Name: "Rahim", City: 'Hyderabad',Country: "India" };
      document.write(JSON.stringify(obj1) === JSON.stringify(obj2));
   </script>
</body>
</html>

출력

true

다음 예를 보면 같은 속성이 반복되어도 순서가 다릅니다. 이 경우 개체 비교는 거짓이 됩니다. 출력에 표시된 대로.

예시

<html>
<body>
   <script>
      const obj1 = {Name: "Rahim", City: 'Hyderabad', Country: "India" };
      const obj2 = {Name: "Rahim", Country: "India", City: 'Hyderabad', };
      document.write(JSON.stringify(obj1) === JSON.stringify(obj2));
   </script>
</body>
</html>

출력

false

따라서 이 단점을 극복하기 위해 'lodash '를 소개합니다. 키/값 쌍이 같거나 같지는 않지만 그들의 순서는 아닙니다.

예시

다음 예제에서 lodash의 "_isEqual()" 속성은 자바스크립트 객체를 비교하는 데 사용됩니다.

<html>
<head>
   <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>
</head>
<body>
   <script>
      const obj1 = {Name: "Rahim", City: 'Hyderabad', Country: "India" };
      const obj2 = {Name: "Rahim", Country: "India", City: 'Hyderabad', };
      document.write(JSON.stringify(obj1) === JSON.stringify(obj2));
      document.write("</br>");
      document.write(_.isEqual(obj1, obj2));
   </script>
</body>
</html>

출력

false