const result = [];
for (const n of objects) {
if (!ids.includes(n.id)) {
result.push(n);
}
}
или
const result = objects.filter(function(n) {
return !this.has(n.id);
}, new Set(ids));
или
const result = (function get(i, n = objects[i]) {
return n
? [].concat(~ids.indexOf(n.id) ? [] : n, get(-~i))
: [];
})(0);
или
const result = Object.values(ids.reduce(
(acc, n) => (delete acc[n], acc),
objects.reduce((acc, n) => (acc[n.id] = n, acc), {})
));
или
const result = [...ids.reduce(
(acc, n) => (acc.delete(n), acc),
new Map(objects.map(n => [ n.id, n ]))
).values()];