lodash findIndex 根据条件查找在数组中的位置

lodash findIndex根据条件查找在数组中的位置,和indeOf不同indexOf的参数只能是数组的元素而findIndex可以通过自定义函数属性或对象就像查找。

findIndex方法

_.findIndex(array, [predicate=_.identity], [fromIndex=0])
参数1:需要查找的对象
参数2:查询条件,可以是对象、对象的属性、自定义函数
参数3:起始位置默认为0
返回值:如果查找到匹配的结果返回大于等于0的值,未找到返回-1

findIndex例子

//arr需要处理的数组
var arr = [
  { 'site': 'itxst.com',  'state': false ,id:1},
  { 'site': 'google.com',  'state': false,id:2 },
  { 'site': 'baidu.com', 'state': true ,id:3}
];

var pos=-1;
//例子1:通过自定义函数查找位置
pos = _.findIndex(arr, function(o) { return o.site== 'google.com'; });
//pos等于1
 
//例子2:通过对象查找位置(无需列举所有的属性)
pos = _.findIndex(arr, { 'site': 'itxst.com', 'state': false});
//pos等于0
 
//例子3:通过对象属性查找位置
pos = _.findIndex(arr, ['state', false]);
//pos等于 0
 
// 例子4:通过对象属性查找位置
pos = _.findIndex(arr, 'state');
//pos等于2

在线试一试

例子