我想使用下划线比较两个数组和具有不同键名的对象...
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输出唯一的电子邮件IDS,这不是像array1中那样...
array3 = [{email2:"info@data.com", first_name2:"name22"}]
答案 0 :(得分:2)
将array1
转换为电子邮件地址为关键字的对象,然后根据该对象过滤数组:
var t = {};
angular.forEach(array1, function(v) { t[v.email] = 1 });
var array3 = array2.filter(
function (v) {
return angular.isUndefined(t[v.email2]);
});
抱歉,此处不需要underscorejs
。
或者,如果您可以使用现代JS语法,它会更干净地读取:
var t = {};
array1.forEach(v => t[v.email] = 1);
var array3 = array2.filter(v => angular.isUndefined(t[v.email2]));