Angularjs 下划线JS-使用对象比较两个数组

Angularjs 下划线JS-使用对象比较两个数组,angularjs,underscore.js,Angularjs,Underscore.js,我想使用下划线比较两个具有不同键名的对象的数组 array1 = [{email:"revosys@gmail.com", first_name:"asad"}, {email:"email1@gmail.com", first_name:"name1"}] array2 = [{email2:"revosys@gmail.com", first_name2:"asad"}, {email2:"info@data.com", first_name2:"name22"}] 想要从array2输

我想使用下划线比较两个具有不同键名的对象的数组

array1 = [{email:"revosys@gmail.com", first_name:"asad"}, {email:"email1@gmail.com", first_name:"name1"}]

array2 = [{email2:"revosys@gmail.com", first_name2:"asad"}, {email2:"info@data.com", first_name2:"name22"}]
想要从array2输出唯一的电子邮件ID,而array1中不存在这样的ID

array3 = [{email2:"info@data.com", first_name2:"name22"}]

array1
转换为电子邮件地址为键的对象,然后根据该值筛选array2:

var t = {};
angular.forEach(array1, function(v) { t[v.email] = 1 });
var array3 = array2.filter(
    function (v) {
       return angular.isUndefined(t[v.email2]);
    });
对不起,这里不需要下划线

或者,如果您可以使用现代JS语法,它会读得更清楚一些:

var t = {};
array1.forEach(v => t[v.email] = 1);
var array3 = array2.filter(v => angular.isUndefined(t[v.email2]));

array1
转换为电子邮件地址为键的对象,然后根据该值筛选array2:

var t = {};
angular.forEach(array1, function(v) { t[v.email] = 1 });
var array3 = array2.filter(
    function (v) {
       return angular.isUndefined(t[v.email2]);
    });
对不起,这里不需要下划线

或者,如果您可以使用现代JS语法,它会读得更清楚一些:

var t = {};
array1.forEach(v => t[v.email] = 1);
var array3 = array2.filter(v => angular.isUndefined(t[v.email2]));