3.18 findIndex

3.18.1语法

_.findIndex(array, predicate, [context])

3.18.2说明

类似于_.indexOf,当predicate通过检查时,返回第一个索引值;否则返回-1。

3.18.3示例

示例一 predicate参数中function(value,index,list){},value的返回值如果在array中能找到,则返回对应的index.如果没有找到则返回-1。


var res1 =_.findIndex([4, 6, 8, 12], function(value){
    return value===5;
});
console.log(res1);
//=> -1 // not found

var res2 = _.findIndex([4, 6, 7, 12], function(value,index,list){
    console.log(index,value,list);
    //0 4 [4, 6, 7, 12]
    //1 6 [4, 6, 7, 12]
    //2 7 [4, 6, 7, 12]
    return value===7;
});
console.log(res2);
//=> 2

var res2 = _.findIndex([4, 6, 7, 12], function(value,index,list){
    console.log(index,value,list);
    //0 4 [4, 6, 7, 12]
    //1 6 [4, 6, 7, 12]
    return value===6;
});
console.log(res2);
//=> 1

示例二,如果array中,有重复的值,则找到第一个后不再向后查找了。


var res2 = _.findIndex([4, 6, 7, 12,6], function(value,index,list){
    console.log(index,value,list);
    //0 4 [4, 6, 7, 12]
    //1 6 [4, 6, 7, 12]
    return value===6;
});
console.log(res2);
//=> 2

示例三,context参数,指向function(){}中的this。


var res2 = _.findIndex([4, 6, 7, 12], function(value,index,list){
    console.log(this);
    //[4, 6, 7, 12]
    //[4, 6, 7, 12]
    return value===6;
},[4, 6, 7, 12]);
console.log(res2);
//

var res2 = _.findIndex([4, 6, 7, 12], function(value,index,list){
    console.log(this);
    //[4, 6, 7]
    //[4, 6, 7]
    return value===6;
},[4, 6, 7]);
console.log(res2);
//=> 1


var res2 = _.findIndex([4, 6, 7, 12], function(value,index,list){
    console.log(this);
    //[4, 6, 7]
    //[4, 6, 7]
    //[4, 6, 7]
    //[4, 6, 7]
    return value===12;
},[4, 6, 7]);
console.log(res2);
//=> 3