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