我有一個大問題。我想創建一個函數來刪除兩個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