Rxjs 获取单个可见光发射的阵列的交点
我需要转换这个可观测的物体,这样它就能发射出这3个阵列的交点 最简单的方法是什么Rxjs 获取单个可见光发射的阵列的交点,rxjs,observable,Rxjs,Observable,我需要转换这个可观测的物体,这样它就能发射出这3个阵列的交点 最简单的方法是什么 let observable = Observable.from([[ 'a' , 'b' , 'c' ],[ 'b', 'c' ],[ 'd' , 'c' , 'b' ]]); 应该被淘汰 observable .intersection() // Expected operator .subscribe( letter => console.log( letter )); 或 可以将
let observable = Observable.from([[ 'a' , 'b' , 'c' ],[ 'b', 'c' ],[ 'd' , 'c' , 'b' ]]);
应该被淘汰
observable
.intersection() // Expected operator
.subscribe( letter => console.log( letter ));
或
可以将交点算法的使用与 算法(归功于) 这里需要注意的一点是,这只适用于排序数组,但可以修改它以适合所有用途。您还必须对其进行修改,以使用对象相等性检查,但我想这会让您了解如何执行此操作
b
c
c
b
function intersection_destructive(a, b) {
a.sort(); <--- ADDED
b.sort(); <--- ADDED
var result = [];
while (a.length > 0 && b.length > 0) {
if (a[0] < b[0]) {
a.shift();
} else if (a[0] > b[0]) {
b.shift();
} else /* they're equal */ {
result.push(a.shift());
b.shift();
}
}
return result;
}
source
.reduce((a, b) => intersection_destructive(a, b))
.subscribe((res) => {
console.log(res);
});