lodash#some could maybe help you.
Checks if predicate returns truthy for any element of collection. Iteration is stopped once predicate returns truthy.
Suppose to have sample-t1.js:
var jobsT1 = [
{
job_id: "1",
title: "Job 1",
description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
department: "Department: Lorem ipsum dolor sit amet",
location: "Location: Lorem ipsum dolor sit amet"
},
{
job_id: "2",
title: "Job 2",
description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
department: "Department: Lorem ipsum dolor sit amet",
location: "Location: Lorem ipsum dolor sit amet"
}
];
module.exports = {jobsT1};
and sample-t2.js:
var jobsT2 = [
{
job_id: "1",
title: "Job 1",
description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
department: "Department: Lorem ipsum dolor sit amet",
location: "Location: Lorem ipsum dolor sit amet"
},
{
job_id: "3",
title: "Job 3",
description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
department: "Department: Lorem ipsum dolor sit amet",
location: "Location: Lorem ipsum dolor sit amet"
}
];
module.exports = {jobsT2};
Using lodash.some method twice you can easily undestand the new and the removed jobs just matching their id.
const _ = require('lodash');
var {jobsT1} = require('./sample-t1');
var {jobsT2} = require('./sample-t2');
var newJobs = [];
var removedJobs = [];
_.forEach(jobsT2, function (n, key) {
if(!_.some(jobsT1, {'job_id': n.job_id})) {
newJobs.push(n);
}
});
_.forEach(jobsT1, function (n, key) {
if(!_.some(jobsT2, {'job_id': n.job_id})) {
removedJobs.push(n);
}
});
console.log('New jobs:', JSON.stringify(newJobs, undefined, 2));
console.log('========');
console.log('Removed jobs:', JSON.stringify(removedJobs, undefined, 2));
With this result:
New jobs: [
{
"job_id": "3",
"title": "Job 3",
"description": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"department": "Department: Lorem ipsum dolor sit amet",
"location": "Location: Lorem ipsum dolor sit amet"
}
]
========
Removed jobs: [
{
"job_id": "2",
"title": "Job 2",
"description": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"department": "Department: Lorem ipsum dolor sit amet",
"location": "Location: Lorem ipsum dolor sit amet"
}
]