我有一个返回一个对象映射的服务,然后在Angular的ngFor中使用它,它只接受数组。所以,我使用map操作符和lodash的_toArray将数据转换为数组。
虽然这有效,但我必须在任何地方导入lodash,我需要这样做,而且看起来很脆弱。我打算研究创建一个自定义运算符,但也许有一个运算符已经这样做了?我似乎找不到合适的人
数据:
{ 0 : {data : 'lorem'}, 1 : {data : 'lorem'}, 2 : {data : 'lorem'} }
电流:
this.http
.get('/api')
.map(data => _.toArray(data));
可能的?
this.http
.get('/api')
.mapToArray();
答案 0 :(得分:9)
您应该可以使用RxJS的map
运算符和Object.keys()
方法执行您想要的操作。
Rx.Observable
.of({
0: { data : 'lorem' },
1: { data : 'lorem' },
2: { data : 'lorem' }
})
.map(data => Object.keys(data).map(k => data[k]))
.subscribe(data => console.log(data));

<script src="https://npmcdn.com/@reactivex/rxjs@5.0.3/dist/global/Rx.min.js"></script>
&#13;