Rxjs在数组中获得属性值的不同值

时间:2017-01-31 16:01:08

标签: angular rxjs

我试图在可观察数组中获取属性的不同值。

  let pt$ = Observable.of([{planTypeID : 1, description : 'test 1'}, 
                                {planTypeID : 2, description : 'test 2'}]);
    let planTypeIDs$ = pt$
        .flatMap(a => a)
        .map(a => a.planTypeID).distinct().toArray();

这是在rxjs中执行此操作的正确方法,还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用.from代替.of,这样可以免除.flatMap
  2. distinct默认会检查引用,所以如果要比较内容,你应该创建某种哈希或制作自定义比较器 - 但这可能不是必需的。
  3. let pt$ = Observable.from([{planTypeID : 1, description : 'test 1'}, 
                                {planTypeID : 2, description : 'test 2'}]);
    let planTypeIDs$ = pt$
        .map(a => a.planTypeID)
        .distinct()
        .toArray();