const result = [];
for (const n of numbers) {
if (!objects.some(m => m.number === n)) {
result.push(n);
}
}
или
const result = [];
COLLECT_NUMBERS:
for (let i = 0; i < numbers.length; i++) {
for (let j = 0; j < objects.length; j++) {
if (objects[j].number === numbers[i]) {
continue COLLECT_NUMBERS;
}
}
result[result.length] = numbers[i];
}
или
const result = numbers.filter(function(n) {
return !this.has(n);
}, new Set(objects.map(n => n.number)));
или
const result = (function get(exclude, i, n = numbers[--i]) {
return i >= 0
? get(exclude, i).concat(~exclude.indexOf(n) ? [] : n)
: [];
})(objects.map(n => n.number), numbers.length);
или
const result = [...objects.reduce(
(acc, n) => (acc.delete(n.number), acc),
new Set(numbers)
)];