Предполагая, что у нас есть 2 массива, A (источник) и B (сохраняется).Jascript - Сравнивая 2 массива объекта самым быстрым и чистым способом
var A = [
{ id: 1, value: 'Product Name 1' },
{ id: 2, value: 'Product Name 2' },
{ id: 3, value: 'Product Name 3' },
{ id: 4, value: 'Product Name 4' },
{ id: 5, value: 'Product Name 5' }
]
var B = [
{ id: 1, value: 'Product Name 1' },
{ id: 2, value: 'Changed Name' },
{ value: 'New Product' }
]
В основном то, что я хочу сделать, это сравнить оба массива и проверить массив B, элементы не присутствуют из массива А, которые были удалены, те, которые имели свойство «значение» изменилось, который получил отредактирован, и какие новые, которые добавлены (в основном без id).
Логика выглядит, что (при условии, что каждый из А и В один элемент из каждого массива)
if A.id == B.id and A.value !== B.value then Edit
B.id doesnt exist then New
B.id is not on A then Deleted
Мне нужно, чтобы иметь массив всех элементов, которые получили новые, редактировать и удалять
Ожидаемый массив будет
added = [
{ value: 'New Product'}
]
edited = [
{ id: 2, value: 'Changed Name' }
]
deleted = [
{ id: 3, value: 'Product Name 3' },
{ id: 4, value: 'Product Name 4' },
{ id: 5, value: 'Product Name 5' }
]
Вы можете оставить свой ожидаемый массив – Raghavendra