Я пытаюсь выяснить, существуют ли какие-либо es6 (или внешние библиотеки) способы для выполнения глубокого сравнения и анализа объектов в JavaScript.
Возьмите следующий пример, где у меня есть свойство history
, которое представляет собой массив, встроенный в свойство services
, которое также является массивом:
{
_id: 4d39fe8b23dac43194a7f571,
name: {
first: "Jane",
last: "Smith"
}
services: [
{
service: "typeOne",
history: [
{ _id: 121,
completed: true,
title: "rookie"
},
{ _id: 122,
completed: false,
title: "novice"
}
]
},
{
service: "typeTwo",
history: [
{ _id: 135,
completed: true,
title: "rookie"
},
{ _id: 136,
completed: false,
title: "novice"
}
]
}
]
}
Теперь,скажем, новый элемент помещается в массив «history» во втором элементе «services», где (service: «typeTwo») - в массиве «services».Мне нужно определить, что произошло, и вытащить весь родительский элемент, потому что мне также нужно знать, в какой «сервис» в массиве «services» добавлен новый элемент «history».
Есть ли способЯ могу сканировать весь этот объект и не только определить, когда что-то изменилось, но и реально вытащить раздел, на который мне нужна ссылка?Я открыт для выбора нативной библиотеки JS или JS.