【问题标题】:RxJS - Where did the Rx.Observable.prototype.toMap operator go?RxJS - Rx.Observable.prototype.toMap 操作符去哪儿了?
【发布时间】:2016-06-06 18:25:16
【问题描述】:

我正在开发一个 Angular 2 项目,我正在尝试创建一个 RxJS Observable 'entitiesById' 哈希/映射。在 RxJS Github 存储库中there's mentioning of the .toMap() operator。但是在我的 npm 安装的rxjs 包中,找不到。只有toArray().toPromise() 可用。

它可能已被删除,因为 .toMap() 转换应该以不同的方式编码,或者应该使用更好的替代方法。

获得相同结果的 RxJS(或 Angular 2)最佳实践是什么(即通过某个键对对象进行映射/散列)?

【问题讨论】:

标签: angular rxjs


【解决方案1】:

我认为reduce 应该可以解决这个问题

someObservable
.reduce(function(oldVal, newVal) {
  oldVal[newVal.name] = newVal;
  return oldVal;
}, {});

其中newVal.name 获取值的name 属性并将其用作映射的键​​并将整个新值分配为值(适应您的需要)

【讨论】:

  • 感谢君特。代码需要进行小的语法更改(我将其应用于您的答案,但目前正在同行评审中显示),但 .reduce 建议效果很好!
猜你喜欢
  • 1970-01-01
  • 2011-03-03
  • 2014-03-15
  • 2015-07-17
  • 2012-10-30
  • 2013-05-23
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
相关资源
最近更新 更多