RxJS是将3个数组合并为一个数组的正确方法,作为可观察的

RxJS是将3个数组合并为一个数组的正确方法,作为可观察的,rxjs,observable,Rxjs,Observable,嗨,我有3个受试者(他们可能是可见的) 假设这些主题包含这些数据 arr1 = ['1','2'], arr2 = ['3','7'], arr3 = ['4'] 我想创建一个observable(mergedObservable),它将这3个observable中最新的一个合并到一个数组中,结果是这样一个数组: [1'、'2'、'3'、'7'、'4'] so that I can achieve this this.mergedObservable.subscribe( mergedA

嗨,我有3个受试者(他们可能是可见的)

假设这些主题包含这些数据

arr1 = ['1','2'], 
arr2 = ['3','7'], 
arr3 = ['4']
我想创建一个observable(mergedObservable),它将这3个observable中最新的一个合并到一个数组中,结果是这样一个数组: [1'、'2'、'3'、'7'、'4']

so that I can achieve this 
this.mergedObservable.subscribe( mergedArray => {
     console.log(mergedArray)
})
// ['1','2','3','7','4']
我正在努力解决如何使这个“可合并服务”。我试过类似的东西 CombineTest(arr1$、arr2$、arr3$),但我仍然需要“链接”更多将合并3的功能


谢谢

combinelatetest
采用可选的
project
函数,可用于修改组合值

您可以指定一个
project
函数,该函数使用
Array.prototype.reduce
将阵列展平为单个阵列:

const arr1$=new Rx.BehaviorSubject(['1','2']);
const arr2$=新的接收行为主体(['3','7']);
const arr3$=新接收行为主体(['4']);
可观测
.联合测试(
arr1$,arr2$,arr3$,
(…数组)=>arrays.reduce((acc,array)=>[…acc,…array],])
)
.subscribe(值=>console.log(值))
。作为控制台包装{最大高度:100%!重要;顶部:0;}

组合测试
采用可选的
项目
函数,可用于修改组合值

您可以指定一个
project
函数,该函数使用
Array.prototype.reduce
将阵列展平为单个阵列:

const arr1$=new Rx.BehaviorSubject(['1','2']);
const arr2$=新的接收行为主体(['3','7']);
const arr3$=新接收行为主体(['4']);
可观测
.联合测试(
arr1$,arr2$,arr3$,
(…数组)=>arrays.reduce((acc,array)=>[…acc,…array],])
)
.subscribe(值=>console.log(值))
。作为控制台包装{最大高度:100%!重要;顶部:0;}

假、假、api是不同的数组或源

 combineLatest(fake, fake1, api)
    .pipe(
      map(([f,f1, apis])=>
       {
         return ([...f, ...f1, ...apis]);
       }
      )
   )
    .subscribe((data) => {
        console.log(data);
      });

fake、fake1、api是不同的数组或源

 combineLatest(fake, fake1, api)
    .pipe(
      map(([f,f1, apis])=>
       {
         return ([...f, ...f1, ...apis]);
       }
      )
   )
    .subscribe((data) => {
        console.log(data);
      });

比你强!我不理解的是“项目”功能。非常感谢。比你还感谢!我不理解的是“项目”功能。非常感谢。