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();
我已经苦苦挣扎了几个小时,我想掌握更高级的概念,我想我可以为此使用 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();