繁体   English   中英

如何实现数组的rxjs zip运算符?

[英]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));

另外,您可以放弃从ArrayObservable的转换,并使用lodash的zip组合数组:

var zipped = _.zip(...myArrays)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM