【问题标题】:Combine two object in RxJS在 RxJS 中合并两个对象
【发布时间】:2017-06-11 14:57:09
【问题描述】:

我正在服务中使用 rxjs 和 angular 2。我有一些可以通过 get 请求访问的 json。

   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 对象的见解将不胜感激。

【问题讨论】:

    标签: javascript arrays json rxjs


    【解决方案1】:

    不知道为什么你不能“进入每个索引”,但你不必这样做,你甚至可以在没有 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
            }
          )
        )
      }))
    

    【讨论】:

    • 耶稣,我感激不尽。我确实在使用 Object.assign 和 map。不过我没想过要嵌套它。
    猜你喜欢
    • 2020-09-22
    • 1970-01-01
    • 2013-01-28
    • 2014-11-29
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    相关资源
    最近更新 更多