JavaScript之indexOf和findIndex的区别


1、概述

1.1、indexOf()方法返回在数组中可以找到一个给定元素的第一个索引(下标),如果不存在,返回-1
1.2、findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引(下标),如果不存在,返回-1


2、indexOf()代码示例

let dataA1 = ['王维', '范仲淹', '欧阳修', '李商隐', '孟浩然'];
console.log(dataA1.indexOf('欧阳修')); // 2
let dataA2 = [
	{ sname: '陶渊明' }, 
	{ sname: '贺知章' }
];
console.log(dataA2.indexOf({ sname: '陶渊明' })); // -1
let variate = { sname: '岑参' };
console.log([{ sname: '龚自珍' }, variate].indexOf(variate)); // 1

3、findIndex()代码

let dataArray = [
	{ 
		id: 1, sname: '陆游', 
		alias: '务观', 
		nickname: '放翁' 
	},
	{ 
		id: 2, 
		sname: '屈原', 
		alias: '原', 
		nickname: null 
	},
	{ 
		id: 3, 
		sname: '王安石', 
		alias: '介甫', 
		nickname: '半山' 
	}
];
console.log(dataArray[dataArray.findIndex((item) => item.id == 3)]);
// {id: 3, sname: "王安石", alias: "介甫", nickname: "半山"}
// 注意:普通函数写法记得加 return
console.log(dataArray[dataArray.findIndex(function(item) { return item.id == 2; })]);
// {id: 2, sname: "屈原", alias: "原", nickname: null}

4、indexOf与findIndex的区别

1、indexOf: 查找值作为第一个参数,采用绝对相等(===)比较,更多的是用于查找基本类型的数据,如果是对象类型,则是判断是否是同一个对象的引用。
2、findIndex: 比较函数作为第一个参数,多用于非基本类型(例如对象)的数组索引查找,或查找条件很复杂。


5、indexOf与findIndex的相同点

indexOffindIndex都是查找数组中满足条件的第一个元素的索引(下标)。


6、相关链接

源码实现

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值