В конечном итоге вы хотите использовать функцию массива filter
.
Самый простой подход - это поиск в массиве agentTasks
для каждого элемента в tasks
. Это хорошо для небольших массивов, но неэффективно для больших массивов.
Вместо этого я бы создал Map
из массива agentTasks
, используя TaskID
в качестве ключа. Затем вы можете отфильтровать tasks
в зависимости от того, есть ли у них соответствующий ключ в Map
.
//1st one
const tasks = [];
tasks.push({ ID: 1, Address: "---", Latitude: 312313, Longitude: 21312 });
tasks.push({ ID: 3, Address: "---", Latitude: 312313, Longitude: 21312 });
//2nd one
const agentTasks = [];
agentTasks.push({ID:2,AgentID: 2,TaskID:1});
const agentTasksMap = new Map(agentTasks.map(x => [x.TaskID, x]));
const filtered = tasks.filter(task => !agentTasksMap.has(task.ID));
console.log(filtered);
Редактировать: ответ с использованием Set
лучше, так как вас не интересуют значения в Map
в моем ответе - вы заботитесь только о существовании ключа.