I have this expression:
var s2 = of(6, 16, 26).pipe(
map(v1=>of(5, 15, 25).pipe(
map(v2=>[v1,v2])
)),
combineLatestAll());
s2.subscribe(console.log)
... and s2 is an of type Observable<number[][]>as I want it.
Can I convert the following expression in a similar way to Observable<number[][][]> (instead of it being an Observable<Observable<number[]>[]>):
var r2 = of(5, 15, 25).pipe(
map(v1=>of(6, 16, 26).pipe(
map(v2=>of(7, 17, 27).pipe(
map(v3 => [v1,v2,v3])
)))),
combineLatestAll());
//Print the output:
r2.subscribe(e1 => {
e1.forEach(e2 => {
e2.subscribe(e3 => {
console.log(e3);
});
})
});
I can't get my head around it. Any help appreciated.
Solution suggested by Ruth:
let s3: Observable<number> = of(5, 15, 25);
let s4: Observable<number> = of(6, 16, 26);
let s5: Observable<number> = of(7, 17, 27);
const r1 = s3.pipe(
map((v3: number) =>
s4.pipe(
mergeMap((v4: number) =>
s5.pipe(
reduce((acc: number[][], v5: number, i5: number) => {
acc[i5] = [v3, v4, v5];
return acc;
}, [])
)
)
)
),
combineLatestAll()//reduce((acc: number[][], curr: number[][]) => [...acc, curr], [])
)
r1.subscribe(console.log);