Función recursiva jquery con backbone.

Tengo una aplicación en la red troncal donde quiero encontrar dentro de un Json algunos registros e imprimir.

mi JSON es así:

[
  {
    "id" : "r1",
    "hotel_id" : "1",
    "name" : "Single",
    "level" : "1"
  },
  {
    "id" : "r1_1",
    "hotel_id" : "1",
    "name" : "Double",
    "level" : "2"
  },
  {
    "id" : "r1_3",
    "hotel_id" : "1",
    "name" : "Double for single",
    "level" : "1"
  },
  {
    "id" : "r1_4",
    "hotel_id" : "1",
    "name" : "Triple",
    "level" : "3"
  },
  {
    "id" : "r2",
    "hotel_id" : "2",
    "name" : "Single",
    "level" : "1"
  },
  {
    "id" : "r2_1",
    "hotel_id" : "2",
    "name" : "Triple",
    "level" : "1"
  }
]

Quiero combinar cada habitación para cada hotel por nivel. Cada hotel puede tener más combinación de habitaciones pero nivel único. Mi objetivo es imprimir algo como esto para el hotel donde id = 1 (igual para el otro con una combinación diferente): Primera combinación para hotel con id 1:

Room "Single", "level" : "1" , "hotel_id" : "1"
Room "Double", "level" : "2" , , "hotel_id" : "1"
Room "Triple", "level" : "3" , , "hotel_id" : "1"

Segunda combinación para hotel con id 1:

Room "Double for single", "level" : "1" , "hotel_id" : "1"
Room "Double", "level" : "2" , , "hotel_id" : "1"
Room "Triple", "level" : "3" , , "hotel_id" : "1"

Cada hotel puede tener más habitaciones de algún nivel, pero quiero construir una combinación con una habitación para cada hotel.

Este es mi análisis en la red troncal, pero solo he recuperado el JSON dentro de todos los cuartos.

//each for all my hotel
_.each(this.collection.models, function(hotel) {
   var rooms = new Array();
   rooms.push(allRooms.where({hotel_id : hotel.id}));

   //this is where I have to construct my combination

   //this is the array for each combination
   hotel.get('rooms').push(rooms);
});

¿Cómo construir esta combinación?

Respuestas a la pregunta(2)

Su respuesta a la pregunta