假设我有两个具有相似结构的对象。如何找到第一个对象中未包含在第二个对象中的所有键,反之亦然?
例如我有两个对象:
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
。找到他们的最佳方式是什么?
最佳答案
一种方法是创建一个递归函数,深度迭代第一个对象的属性,记住当前属性的路径,并调查第二个对象中是否存在具有此类路径的属性。
已经有一个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' ]
]
]
关于javascript - 查找对象键之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39905178/