JavaScript에서 두 객체가 동일한지 비교하는 방법

不言
풀어 주다: 2019-02-25 10:29:53
앞으로
2957명이 탐색했습니다.

이 글의 내용은 JavaScript에서 두 객체의 동등성을 비교하는 방법에 관한 것입니다. 이는 특정 참조 값을 가지고 있으므로 도움이 될 수 있습니다.

면접에서 면접관님께서 받은 질문입니다

이 인터뷰 질문에서

Equal: 사물의 속성값이 같다는 뜻

이런 obj가 2개가 있습니다

let obj1 = {
    name:'李德华',
    age:18,
    price:NaN
}

let obj2 = {
    name:'张德华',
    age:18,
    price:NaN
}
로그인 후 복사

I 생각나는 하나의 해결책

function compare(obj1,obj2){
    if(Object.keys(obj1).length != Object.keys(obj2).length){
      return false
    }else{
      for(key in obj1){
        if(obj2.hasOwnProperty(key)){
            if( !Object.is(obj1[key],obj2[key])){
                return false;
            }
        }else{
          return false
        }
      }
      return true
    }
}
로그인 후 복사

해결 과정에 대한 생각

  • obj에는 길이가 없으므로 Object.keys()를 통해서만 배열로 변환할 수 있습니다

  • 두 번째 단계로 들어가세요. 객체의 속성이 다른 속성에 있습니다. 객체가 obj에 존재하는지 여부입니다. 여기서 Object.hasOwnProperty()는 객체의 속성만 비교하는 데 사용됩니다(obj가 상위 속성을 상속하는 것을 방지하기 위해).

  • 속성 값을 비교하는 두 번째 단계의 기반을 제공합니다. NaN이 자신과 같지 않다는 문제를 피하기 위해 ES6의 Object.is()

또는 Underscore.js

에서 _.isEqual을 사용하세요.

위 내용은 JavaScript에서 두 객체가 동일한지 비교하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!