2016-10-06 3 views
2

비슷한 구조의 두 개체가 있다고 가정합니다. 두 번째 객체에 포함되지 않은 첫 번째 객체의 모든 키를 어떻게 찾을 수 있습니까?개체 키의 차이 찾기

예를 들어

나는 두 개체가 : 다른

const foo = { 
    foo: 'foo', 
    bar: { 
    baz: 'baz', 
    qux: 'qux' 
    } 
}; 

const bar = { 
    foo: 'foo', 
    bar: { 
    baz: 'baz', 
    quux: 'quux' 
    }, 
    corge: 'corge' 
}; 

소품은 다음과 같습니다 foo.bar.qux, bar.bar.quux, bar.corge. 그들을 찾는 가장 좋은 방법은 무엇입니까?

답변

2

첫 번째 개체의 속성을 자세히 반복하고 현재 속성의 경로를 기억하고 두 번째 개체에 이러한 경로의 속성이 있는지 조사하는 재귀 함수를 만드는 것이 한 가지 방법입니다.

이미이 경우에 tool이 쓰여 있습니다. 좋아

npm install keys-diff 

을 그리고 그것을 사용 : : 그냥 설치

import keysDiff from 'keys-diff' 
const foo = { 
    foo: 'foo', 
    bar: { 
    baz: 'baz', 
    qux: 'qux' 
    } 
}; 

const bar = { 
    foo: 'foo', 
    bar: { 
    baz: 'baz', 
    quux: 'quux' 
    }, 
    corge: 'corge' 
}; 

keysDiff(foo, bar); 

을 결과는 다음과 같아야합니다

[ 
    [ 
    [ 'bar', 'qux' ] 
    ], 
    [ 
    [ 'bar', 'quux' ], 
    [ 'corge' ] 
    ] 
]