RxJS 中的 findIndex
操作符以谓词函数作为参数。它返回一个 Observable,该 Observable 或者发出单个数字(源 Observable 序列中第一个匹配谓词的项目的从零开始的索引),或者在没有此类项目匹配的情况下发出 −1
。
谓词函数接受三个参数
- 源 Observable 发出的项目
- 该项目的从零开始的索引
- 源 Observable 本身
您还可以将一个对象传递给 findIndex
作为可选的第二个参数,该对象将作为“this
”提供给谓词函数。
示例代码
/* Found an element */
var array = [1,2,3,4];
var source = Rx.Observable.fromArray(array)
.findIndex(function (x, i, obs) {
return x === 1;
});
var subscription = source.subscribe(
function (x) { console.log('Next: ' + x); },
function (err) { console.log('Error: ' + err); },
function () { console.log('Completed'); });
/* Not found */
var array = [1,2,3,4];
var source = Rx.Observable.fromArray(array)
.findIndex(function (x, i, obs) {
return x === 5;
});
var subscription = source.subscribe(
function (x) { console.log('Next: ' + x); },
function (err) { console.log('Error: ' + err); },
function () { console.log('Completed'); });
findIndex
存在于以下发行版中
rx.all.js
rx.all.compat.js
rx.aggregates.js
它需要以下发行版之一
rx.js
rx.compat.js
rx.lite.js
rx.lite.compat.js