gpt4 book ai didi

javascript - 可观察的转换

转载 作者:搜寻专家 更新时间:2023-10-30 21:12:21 24 4
gpt4 key购买 nike

我对 Observables 很陌生,这对其他人来说可能是个愚蠢的问题,但我找不到解决方法。我如何转换 Observable<Array<T>>其中 T是一个带有属性 Id(string) 的 TypeScript 类进入 Array<string> ?我想转换 Id属性转换为字符串数组。

最佳答案

你想在这里做两件事:

  1. 将源数组中的所有数组展平为 T 的单个可观察对象
  2. T 的每个实例映射到 Id 属性

您可以使用 mergeAll像在普通 JS 数组上使用 reduce 一样展平 observable。

const source = Rx.Observable.of(
[{ Id: '1' }, { Id: '2' }],
[{ Id: '3' }, { Id: '4' }]
);

const flattened = source.mergeAll();

flattened.subscribe(s => console.log(s));
// => {Id:'1'}, {Id:'2'}, {Id:'3'}, {Id:'4'}

然后您可以使用 map (与普通的 JS 数组一样)提取 Id 属性

const mapped = flattened.map(s => s.Id);

mapped.subscribe(s => console.log(s))
// => '1', '2', '3', '4'

将其全部放入 1 个语句中,然后...

source
.mergeAll()
.map(s => s.Id)
.subscribe(s => console.log(s))

// => '1', '2', '3', '4'

关于javascript - 可观察的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45507888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com