Так что я хочу добиться этого в ванили, ES6 JS. Пожалуйста, не JQuery! (Лодаш приемлем!)
Обычно у меня есть 2 массива: 1 содержит объекты и 1 содержит идентификаторы.
const old = [
{
id: 1,
name: 'object_1',
},
{
id: 2,
name: 'object_2',
},
];
const newIds = [1, 2, 3];
Мое текущее решение этой проблемы показано ниже;
const difference = newIds.filter(n => !old.some(o => o.id === n));
В результате возвращается [3]
.
В основном я сейчас использую это, чтобы определить, что-то отсутствует, и создать его в моей базе данных, если оно отсутствует.
Однако мне нужно сделать обратное. Если что-то удалено, мне нужно сравнить и удалить элемент.
Проблема в этом; Это текущее решение работает только «в одну сторону», поэтому я не могу сделать то, что я сказал выше.
В идеале мне нужно только одно утверждение, будь то создание или удаление, и я хочу, чтобы оно только возвращало идентификаторы вещей, отсутствующих в любом массиве.
Надеюсь, это имеет смысл.