Ich habe eine Liste von Benutzern, die ich filtern möchte, mit _.difference. Aber es funktioniert nicht beim Vergleichen der Objekte. Es funktioniert nur, wenn ich nur die Benutzernamen vergleiche. Hier ist das Code-Schnipsel:Underscore Unterschied funktioniert nicht auf Array von JSON-Objekten
var users = [
{
"username": "user1",
"birthdate": "birth1"
},
{
"username": "user2",
"birthdate": "birth2"
},
{
"username": "user3",
"birthdate": "birth3"
},
{
"username": "user4",
"birthdate": "birth4"
}
];
var keep = [
{
"username": "user1",
"birthdate": "birth1"
},
{
"username": "user3",
"birthdate": "birth3"
}
];
log(_.difference(_.pluck(users,"username"),_.pluck(keep,"username"))); // works
log(_.difference(users,keep)); // this is what I want, does not work
Irgendwelche Idee? Dank - C.
Hinweis: eine alternative Möglichkeit, es zu tun, wie followss ist, aber nicht sicher über die Effizienz:
log(_.filter(users, function(num){
return (!_.contains(_.pluck(keep,"username"),num.username))
}));
Vielen Dank! – Christian68
@ Christian68 Wenn Ihnen das hilft, sollten Sie es akzeptieren, um die Frage als gelöst zu markieren. –