【发布时间】:2016-08-10 14:22:51
【问题描述】:
使用 Rxjs 5.0,我有一个像这样的对象
var data = [
{name: 'abc', title: 'zzz', data: '', id: ''},
{name: 'abc1', title: 'zzz1', data: '', id: ''},
{name: 'abc2', title: 'zzz2', data: '', id: ''},
{name: 'abc3', title: 'zzz3', data: '', id: ''}
]
我想简单地映射它,只保留名称和图块。像这样的事情也是如此
Rx.Observable.from(data)
.map(item => return {name: item.name, title: item.title};)
.subscribe(items => console.log('Final OBJ:' + JSON.stringify(items)));
在控制台上,我在多行上获取项目,即订阅运行 4 次。我只想使用一个包含只有名称和标题字段的数据的完整对象运行一次订阅。
控制台上的预期输出是:
Final OBJ: [{name: 'abc', title: zzz},{name: 'abc1', title: zzz1},{name: 'abc2', title: zzz2},{name: 'abc3', title: zzz3}]
【问题讨论】:
-
预期输出是什么?
-
添加了预期的输出
-
Map 将返回一个数组,所以基本上你的具有 3 个道具的对象数组变成了一个具有 2 个道具的对象数组。如果您想要单个对象作为输出,您正在寻找 reduce 而不是 map。
标签: javascript rxjs5