我有字符串数组
var users = ["user1@gmail.com","user2@gmail.com"];
我也有一些jsons:
var usersData = [
{
"email" : "user1@gmail.com",
"pass" : "1234",
"age" : 19
},
{ "email" : "user2@gmail.com",
"pass" : "123",
"age" : 20
},
{ "email" : "user3@gmail.com",
"pass" : "1234",
"age" : 25
},
{ "email" : "user4@gmail.com",
"pass" : "1234",
"age" : 28
},
{ "email" : "user5@gmail.com",
"pass" : "13go",
"age" : 35
}];
我希望比较json和数组之间的电子邮件,json应该保留 - >使用lodash。
输出 - 仅包含数组中用户的Json
答案 0 :(得分:1)
您可以使用filter()并使用flow(),partial()和partialRight()撰写回调:
_.filter(usersData, _.flow(
_.identity,
_.partialRight(_.get, 'email'),
_.partial(_.includes, users)
));
这基本上相当于:
_.filter(usersData, item => _.includes(users, item.email));
在这种情况下,单线可能更好,但是能够组成回调也很方便!