이 글의 내용은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!