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

JavaScript에서 두 객체의 차이점 속성 가져오기

<시간/>

예를 들어, 키 값 쌍이 유사한 두 개의 객체가 주어졌거나 두 객체에서 다른 값을 갖는 키가 있다고 가정해 보겠습니다. 우리의 임무는 두 객체를 인수로 받아 다른 값을 갖는 가장 첫 번째 키를 반환하는 함수를 작성하는 것입니다. 모든 키의 값이 정확히 같으면 -1을 반환해야 합니다.

다음은 샘플 개체입니다 -

const obj1 = {
   name: 'Rahul Sharma',
   id: '12342fe4554ggf',
   isEmployed: true,
   age: 45,
   salary: 190000,
   job: 'Full Stack Developer',
   employedSince: 2005
}
const obj2 = {
   name: 'Rahul Sharma',
   id: '12342fe4554ggf',
   isEmployed: true,
   age: 45,
   salary: 19000,
   job: 'Full Stack Developer',
   employedSince: 2005
}

두 객체를 가져와 forEach() 루프를 사용하여 첫 번째 객체를 반복하고 두 객체의 동등성을 확인합니다. 어떤 지점의 값이 일치하지 않으면 플래그를 업데이트하고 루프를 종료하고 특정 키를 반환합니다. . 전체 루프를 반복하면 모든 것이 일치한다는 의미이며 이 경우 -1을 반환합니다.

이에 대한 전체 코드는 다음과 같습니다. -

예시

const obj1 = {
   name: 'Rahul Sharma',
   id: '12342fe4554ggf',
   isEmployed: true,
   age: 45,
   salary: 190000,
   job: 'Full Stack Developer',
   employedSince: 2005
}
const obj2 = {
   name: 'Rahul Sharma',
   id: '12342fe4554ggf',
   isEmployed: true,
   age: 45,
   salary: 19000,
   job: 'Full Stack Developer',
   employedSince: 2005
}
const difference = (obj1, obj2) => {
   let keyFound = false;
   Object.keys(obj1).forEach(key => {
      if(obj1[key] !== obj2[key]){
         return keyFound = key;
      }
   });
   return keyFound || -1;
};
console.log(difference(obj1, obj2));

출력

콘솔의 출력은 다음과 같습니다. -

salary