Backbone.js Underscore.js filtert eine Sammlung gegen ein Array

Ich versuche im Grunde, das zu tun, was mit dieser Frage gemacht wird, aber mit einem Array und gebe alle Objekte mit den Werten des entsprechenden Arrays zurück, nicht nur mit dem Wert:Backbone-Sammlung nach Attributwert filtern

Mein natürlicher Instinkt ist es, _.filter oder _.partition für die Personensammlung zu verwenden, aber ich bin verwirrt darüber, wie diese verglichen und zurückgegeben werden und erhalte nicht das gewünschte Ergebnis.

Mit dem folgenden Befehl geben Sie die ID über den Router ein:

friendsRoute: function(id){                                                                       
  persons = new App.Collections.Persons();                                                   
  persons.fetch().done(function(){                                                           
    var single = persons.find(function(i){                                                   
      return i.get('id') == id;                                                              
    });                                                                                      
    var friendsIds = single.get('friends');


    var friends = ?


    //var friendsList = new App.Views.FriendsList();
    //friendsList.render({ friends: friends });
  });                                                                                        
},                                                                                           

Ich habe ein friendsIds-Array (Joes Freunde):

friendsIds = [1,4,5]

Und versuchen, die übereinstimmenden IDs von der folgenden JSON abzurufen und deren Namen in der Ansicht "Freundesliste" anzuzeigen:

[
  { "id": 1, "name": "Steve", "age": 22, "friends": [4] },
  { "id": 2, "name": "Mary", "age": 18, "friends": [1,3] },
  { "id": 3, "name": "Joe", "age": 43, "friends": [1,4,5] },
  { "id": 4, "name": "Tommy", "age": 19, "friends": [1] },
  { "id": 5, "name": "Leslie", "age": 27, "friends": [2,4] }
]

Antworten auf die Frage(2)

Ihre Antwort auf die Frage