2016-05-31 12 views
0

Ich habe Array von Stringsvergleichen Infos von Array von Strings und Arrays von jsons lodash mit

var users = ["[email protected]","[email protected]"]; 

i auch bekam Array von jsons:

var usersData = [ 
{ 
"email" : "[email protected]", 
"pass" : "1234", 
"age" : 19 
}, 
{ "email" : "[email protected]", 
"pass" : "123", 
"age" : 20 
}, 
{ "email" : "[email protected]", 
"pass" : "1234", 
"age" : 25 
}, 
{ "email" : "[email protected]", 
"pass" : "1234", 
"age" : 28 
}, 
{ "email" : "[email protected]", 
"pass" : "13go", 
"age" : 35 
}]; 

möchte ich E-Mails zwischen dem json vergleichen und die Array, Json sollte bleiben -> mit Lodash.

Ausgang - die Json mit nur den Benutzer, dass

+0

und was ist die erwartete Ausgabe? –

+0

Ausgabe des Arrays von Jsons mit nur den Benutzern im Array – MusicGindos

Antwort

1

Sie filter() im Array verwenden könnte und einen Rückruf komponieren flow() verwenden, partial() und partialRight():

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

die im wesentlichen gleichwertig ist:

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

In diesem Fall ist der One-Liner wahrscheinlich besser, aber es ist praktisch, in der Lage zu c Callbacks auch umgehen!

+0

Hi Adam, arbeiten, ty! – MusicGindos