Underscorejs - 将两个数组与对象进行比较
Underscorejs - Compare two arrays with objects
我想使用下划线比较两个数组和具有不同键名的对象...
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"}]
将 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]);
});
抱歉,underscorejs
这里不需要。
或者,如果你可以使用现代 JS 语法,它读起来更清晰:
var t = {};
array1.forEach(v => t[v.email] = 1);
var array3 = array2.filter(v => angular.isUndefined(t[v.email2]));
我想使用下划线比较两个数组和具有不同键名的对象...
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"}]
将 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]);
});
抱歉,underscorejs
这里不需要。
或者,如果你可以使用现代 JS 语法,它读起来更清晰:
var t = {};
array1.forEach(v => t[v.email] = 1);
var array3 = array2.filter(v => angular.isUndefined(t[v.email2]));