我有一个大问题。我想创建一个函数来删除两个JSON文件之间相等的'部分',函数的输出具有相同的结构,但没有'相等部分'。删除两个JSON之间相等的密钥
一个例子,我有一个DOM树的JSON版本,我想只保留页面之间的差异(除去导航页脚...)
例
const a = {
id: '1',
child: [
{
id: '2',
child: [
{
id: '1'
},
{
id: '2'
}
]
},
{
id: '3',
child: [
{
id: '1'
},
{
id: '5'
}
]
}
]
}
而且
const b = {
id: '1',
child: [
{
id: '2',
child: [
{
id: '1'
},
{
id: '4'
}
]
},
{
id: '3',
child: [
{
id: '1'
},
{
id: '4'
}
]
}
]
}
带功能
diff(a, b)
这个结果
{
id: '1',
child: [
{
id: '2',
child: [
{
id: '2'
}
]
},
{
id: '3',
child: [
{
id: '5'
}
]
}
]
}
我创造了这个基于递归函数
const diff = (a, b) => {
if (Array.isArray(a)) {
}
if (typeof a === 'object') {
// ...
extract(a.child, b.child);
}
}
我该怎么办呢?有没有npm软件包?或与JSON路径?我想创建一个函数,它可以删除两个JSON文件之间相等的“部分”,而函数的输出具有相同的结构,但没有“相等部分”。
看看https://www.npmjs.com/package/deep-diff。 – nicooga
我想删除相同的部分,但这个软件包显示我的差异 –
只是FYI但这些不是json文件,这些都是javascript对象。 JSON是JavaScript Object Notation,用于将javascript对象作为字符串传输或存储。 – Marie