>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 두 객체가 동일한지 비교하는 방법

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

不言
不言앞으로
2019-02-25 10:29:532994검색

이 글의 내용은 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으로 문의하시기 바랍니다. 삭제