我正在使用服务中的rxjs和angular 2。我有一些json,我能够通过 get 请求访问。
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如何获得&#34;搜索&#34; 在预留数组对象中如此
"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对象的任何见解都将非常感激。
答案 0 :(得分:5)
不确定为什么你不能在每个索引中找到&#34;但是你不必这样做,你甚至可以在没有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
}
)
)
}))