I have two arrays list1 and list2 which have objects with some properties; userId is the Id or unique property:
list1
Use lodash's _.isEqual method. Specifically:
list1.reduce(function(prev, curr){
!list2.some(function(obj){
return _.isEqual(obj, curr)
}) ? prev.push(curr): false;
return prev
}, []);
Above gives you the equivalent of A given !B (in SQL terms, A LEFT OUTER JOIN B). You can move the code around the code to get what you want!