find(),findIndex(),indexOf()的用法与区别

1、find (es6)

find()方法返回数组中第一个满足条件的元素,找不到返回undefined

arr.find(callback)
callback函数有三个参数。

  • item:每一次迭代查找的数组元素。
  • index:每一次迭代查找的数组元素索引。
  • arr:被查找的数组。
var testArr1 = [20,12,362,26,965,22,26,35];
var findItem1 = testArr1.find(function(item,index,arr){
	return item>26
});
console.log(findItem1 )//362

//也可以在对象数组中根据对象属性作为判断条件查找
var testArr2 = [
{
	name:'aaa',
	id:'111'
},
{
	name:'bbb',
	id:'222'
},
{
	name:'ccc',
	id:'333'
}]
var findItem2 = testArr2.find(function(item,index,arr){
	return item.name=='ccc'
})
console.log(findItem2 )//{name:'ccc',id:'333'}

2、findIndex (es6)

findIndex()方法返回数组中第一个满足条件的索引,找不到返回 -1

arr.findIndex(callback)
callback函数有三个参数

  • item:每一次迭代查找的数组元素。
  • index:每一次迭代查找的数组元素索引。
  • arr:被查找的数组。
var testArr1 = [20,12,362,26,965,22,26,35];
var index1 = testArr1.findIndex(function(item,index,arr){
	return item>100
});
console.log(index1)//2

//也可以在对象数组中根据对象属性作为判断条件查找
var testArr2 = [
{
	name:'aaa',
	id:'111'
},
{
	name:'bbb',
	id:'222'
},
{
	name:'ccc',
	id:'333'
}]
var index2 = testArr2 .findIndex(function(item,index,arr){
	return item.name=='bbb'
})
console.log(index2)//1

3、indexOf

indexOf()方法返回在数组中可以找到指定元素的第一个索引,找不到返回 -1

arr.indexOf(searchValue,[fromIndex = 0])

var testArr = [20,12,362,26,965,22,26,35];
var index1 = testArr.indexOf(26);
console.log(index1)//3
var index2 = testArr.indexOf(26,5);
console.log(index2)//6
var index3 = testArr.indexOf(26,7);
console.log(index3)//-1

总结

1、find()与findIndex()

  • 相同:参数与用法
  • 不同:find返回元素,findIndex返回索引;找不到时find返回undefined,findIndex返回-1。

2、2.findIndex()与indexOf()

  • findIndex比indexOf更强大一些,可以通过回调函数查找对象数组,indexOf只能查找数组中指定的值,不过indexOf可以指定开始查找位置的索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老电影故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值