使用lodash比较来自字符串数组和jsons数组的信息

时间:2016-05-31 13:53:36

标签: arrays json lodash

我有字符串数组

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

1 个答案:

答案 0 :(得分:1)

您可以使用filter()并使用flow()partial()partialRight()撰写回调:

_.filter(usersData, _.flow(
  _.identity,
  _.partialRight(_.get, 'email'),
  _.partial(_.includes, users)
));

这基本上相当于:

_.filter(usersData, item => _.includes(users, item.email));

在这种情况下,单线可能更好,但是能够组成回调也很方便!