2017-01-26 3 views
4

Я работаю с rxjs и угловыми 2 внутри службы. У меня есть json, с которым я смог получить доступ с запросом ..Объединить два объекта в RxJS

private _campInfoUrl = 'api/campInfo/campInfo.json'; 
    constructor(private _http: Http) { } 

    getAvailableCamps() { 
    return this._http.get(this._campInfoUrl) 
     .map((response: Response) => response.json()) 

На данный момент у меня есть все данные. Однако, чтобы попасть в этот объект

 { 
     "search": { 
     "startDate": "2016-06-07", 
     "endDate": "2016-06-10" 
     }, 
     "reservations": [ 
     {"campsiteId": 1, "startDate": "2016-06-01", "endDate": "2016-06-04"}, 
     {"campsiteId": 1, "startDate": "2016-06-11", "endDate": "2016-06-13"}, 
     {"campsiteId": 2, "startDate": "2016-06-08", "endDate": "2016-06-09"} 
    ] 
} 

это то, что я пытаюсь сделать

.map((response: Response) => response.json()) // <IProduct[]> 
    .map((tripDate) => ({ 
    reservations: tripDate.reservations, 
    newRes: tripDate.search // <-- how to add this to every return object 
    })) 

То, что я изо всех сил, чтобы выяснить, является способом с rxjs о том, как получить «поиск» внутри оговорок массив объектов, как так

"reservations": [ 
{ 
    "campsiteId": 1, 
    "startDate": "2016-06-01", 
    "endDate": "2016-06-04", 
    "searchStartDate": "2016-06-07, 
    "searchEndDate": "2016-06-10 
}, 
{ 
    "campsiteId": 1, 
    "startDate": "2016-06-11", 
    "endDate": "2016-06-13", 
    "searchStartDate": "2016-06-07, 
    "searchEndDate": "2016-06-10 
}, 
{ 
    "campsiteId": 2, 
    "startDate": "2016-06-08", 
    "endDate": "2016-06-09", 
    "searchStartDate": "2016-06-07, 
    "searchEndDate": "2016-06-10 
} 

в приведенном выше примере у меня есть объект поиска добавляется к каждому индексу массива оговорок.

Я надеялся, что это вопрос конкатенирования или сопоставления для преобразования массива. Тем не менее, я не могу попасть внутрь каждого индекса в резервном массиве

Любое понимание навигации по этому объекту json было бы весьма полезным.

ответ

4

Не знаю, почему вы не можете получить «внутри каждого индекса», но вы не должны и вы даже можете сделать это без RxJS:

.map((response: Response) => response.json()) // <IProduct[]> 
    .map((tripDate) => ({ 
    reservations: tripDate.reservations 
     .map(reservation => Object.assign(
     {}, 
     reservation, 
     { 
      searchStartDate: tripDate.search.startDate, 
      searchEndDate: tripDate.search.endDate 
     } 
    ) 
    ) 
    })) 
+0

Иисус Я не могу тебя отблагодарить. Я буквально работал с Object.assign и картой. Я не думал, что это гнездится. – Winnemucca

Смежные вопросы