RXJS - 使用运算符转换项目数组

RXJS - Transforming an array of items, with operators

我已经苦苦挣扎了几个小时,我想掌握更高级的概念,我想我可以为此使用 reduce 运算符,但我想求助于另一种观点。

以下代码在一个水龙头内手动循环遍历返回的项目数组,我使用 of 只是为了模拟 observable 会发出什么。

我想要实现的是重新映射 arrayItems 中的每个对象以具有额外的 属性,最终结果是一个对象数组。

我的 objective 这里是放弃水龙头,因为我觉得有更有效的方法...

        of([{ foo: 'bar' }, { foo: 'baz' }])
            .pipe(
                tap((arrayItems) => {
                    const arr = [];

                    arrayItems.forEach((item) => {
                        arr.push({
                            ...item,
                            extraProperty: {}
                        });
                    });

                    return of(arr);
                })
            )
            .subscribe();

谁能指点一下,感激不尽!

tap 运算符不会修改您的值。它是用来做副作用的。相反,使用 map 转换事件:

 of([{ foo: 'bar' }, { foo: 'baz' }])
            .pipe(
                map((arrayItems) => 
                    arrayItems.map((item) => ({
                        ...item,
                        extraProperty: {}
                    })
                );
            )
            .subscribe();