[英]How to implement rxjs zip operator for array of arrays?
我有一个给出数组数组的源。 所有数组具有相同数量的元素。 如何使用rxjs zip运算符按如下所述转换源数组,以便轻松进行映射? 提前致谢!
var source = Rx.Observable.from([[1, 2, 3], ["a", "b", "c"], ["do", "re", "mi"]]);
// I would like to transform to:
// [[1, "a", "do"], [2, "b", "re"], [3, "c", "mi"]]
您可以将每个数组转换为Observable,然后压缩为:
var myArrays = [
[1, 2, 3],
['a', 'b', 'c'],
['do', 're', 'mi']
];
var myObservables = myArrays.map(xs => Rx.Observable.from(xs));
var zipped$ = Rx.Observable.zip(myObservables);
zipped$.subscribe(x => console.log(x));
另外,您可以放弃从Array
到Observable
的转换,并使用lodash的zip
组合数组:
var zipped = _.zip(...myArrays)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.